@explorable-viz/fluid 0.7.9 → 0.7.10
Sign up to get free protection for your applications and to get access to all the features.
- package/.spago/{argonaut-codecs/v9.0.0 → affjax-node/v1.0.0}/.editorconfig +1 -1
- package/.spago/affjax-node/v1.0.0/.eslintrc.json +30 -0
- package/.spago/affjax-node/v1.0.0/.gitignore +13 -0
- package/.spago/pathy/v9.0.0/.editorconfig +13 -0
- package/dist/fluid/fluid/dataset/methane-emissions.fld +123 -0
- package/dist/fluid/fluid/dataset/mini-non-renewables.fld +3 -0
- package/dist/fluid/fluid/dataset/mini-renewables.fld +6 -0
- package/dist/fluid/fluid/dataset/non-renewables.fld +67 -0
- package/dist/fluid/fluid/dataset/renewables-new.fld +301 -0
- package/dist/fluid/fluid/dataset/renewables-restricted.fld +139 -0
- package/dist/fluid/fluid/dataset/renewables.fld +100 -0
- package/dist/fluid/fluid/example/arithmetic.fld +1 -0
- package/dist/fluid/fluid/example/array.fld +2 -0
- package/dist/fluid/fluid/example/compose.fld +2 -0
- package/dist/fluid/fluid/example/desugar/list-comp-1.fld +1 -0
- package/dist/fluid/fluid/example/desugar/list-comp-10.fld +1 -0
- package/dist/fluid/fluid/example/desugar/list-comp-2.fld +1 -0
- package/dist/fluid/fluid/example/desugar/list-comp-3.fld +1 -0
- package/dist/fluid/fluid/example/desugar/list-comp-4.fld +1 -0
- package/dist/fluid/fluid/example/desugar/list-comp-5.fld +1 -0
- package/dist/fluid/fluid/example/desugar/list-comp-6.fld +1 -0
- package/dist/fluid/fluid/example/desugar/list-comp-7.fld +1 -0
- package/dist/fluid/fluid/example/desugar/list-comp-8.fld +1 -0
- package/dist/fluid/fluid/example/desugar/list-comp-9.fld +1 -0
- package/dist/fluid/fluid/example/desugar/list-enum.fld +1 -0
- package/dist/fluid/fluid/example/dict-list-comp.fld +1 -0
- package/dist/fluid/fluid/example/dicts.fld +10 -0
- package/dist/fluid/fluid/example/div-mod-quot-rem.fld +4 -0
- package/dist/fluid/fluid/example/factorial.fld +6 -0
- package/dist/fluid/fluid/example/filter.fld +1 -0
- package/dist/fluid/fluid/example/first-class-constr.fld +1 -0
- package/dist/fluid/fluid/example/flatten.fld +12 -0
- package/dist/fluid/fluid/example/foldr-sumSquares.fld +1 -0
- package/dist/fluid/fluid/example/graphics/background.fld +7 -0
- package/dist/fluid/fluid/example/graphics/grouped-bar-chart.fld +9 -0
- package/dist/fluid/fluid/example/graphics/line-chart.fld +13 -0
- package/dist/fluid/fluid/example/graphics/stacked-bar-chart.fld +3 -0
- package/dist/fluid/fluid/example/include-input-into-output.fld +1 -0
- package/dist/fluid/fluid/example/length.fld +1 -0
- package/dist/fluid/fluid/example/lexicalScoping.fld +3 -0
- package/dist/fluid/fluid/example/lib/some-constants.fld +1 -0
- package/dist/fluid/fluid/example/linked-inputs/energyscatter.fld +24 -0
- package/dist/fluid/fluid/example/linked-inputs/mini-energyscatter.fld +30 -0
- package/dist/fluid/fluid/example/linked-outputs/convolution-data.fld +5 -0
- package/dist/fluid/fluid/example/linked-outputs/convolution.fld +12 -0
- package/dist/fluid/fluid/example/linked-outputs/line-chart.fld +15 -0
- package/dist/fluid/fluid/example/linked-outputs/moving-average.fld +19 -0
- package/dist/fluid/fluid/example/linked-outputs/pairs-data.fld +1 -0
- package/dist/fluid/fluid/example/linked-outputs/pairs.fld +2 -0
- package/dist/fluid/fluid/example/lookup.fld +15 -0
- package/dist/fluid/fluid/example/map.fld +1 -0
- package/dist/fluid/fluid/example/mergeSort.fld +22 -0
- package/dist/fluid/fluid/example/normalise.fld +3 -0
- package/dist/fluid/fluid/example/nub.fld +1 -0
- package/dist/fluid/fluid/example/pattern-match.fld +12 -0
- package/dist/fluid/fluid/example/percent.fld +1 -0
- package/dist/fluid/fluid/example/plot/methane.fld +14 -0
- package/dist/fluid/fluid/example/plot/non-renewables.fld +22 -0
- package/dist/fluid/fluid/example/range.fld +4 -0
- package/dist/fluid/fluid/example/record-lookup.fld +3 -0
- package/dist/fluid/fluid/example/records.expect.fld +0 -0
- package/dist/fluid/fluid/example/records.fld +11 -0
- package/dist/fluid/fluid/example/reverse.fld +1 -0
- package/dist/fluid/fluid/example/scratchpad.fld +6 -0
- package/dist/fluid/fluid/example/slicing/add.expect.fld +1 -0
- package/dist/fluid/fluid/example/slicing/add.fld +1 -0
- package/dist/fluid/fluid/example/slicing/array/array.expect.fld +2 -0
- package/dist/fluid/fluid/example/slicing/array/array.fld +4 -0
- package/dist/fluid/fluid/example/slicing/array/dims.expect.fld +3 -0
- package/dist/fluid/fluid/example/slicing/array/dims.fld +3 -0
- package/dist/fluid/fluid/example/slicing/array/lookup.expect.fld +3 -0
- package/dist/fluid/fluid/example/slicing/array/lookup.fld +5 -0
- package/dist/fluid/fluid/example/slicing/array/renewables.fld +100 -0
- package/dist/fluid/fluid/example/slicing/convolution/edgeDetect.expect.fld +1 -0
- package/dist/fluid/fluid/example/slicing/convolution/edgeDetect.fld +1 -0
- package/dist/fluid/fluid/example/slicing/convolution/emboss-wrap.fld +1 -0
- package/dist/fluid/fluid/example/slicing/convolution/emboss.expect.fld +1 -0
- package/dist/fluid/fluid/example/slicing/convolution/emboss.fld +1 -0
- package/dist/fluid/fluid/example/slicing/convolution/filter/edge-detect.fld +5 -0
- package/dist/fluid/fluid/example/slicing/convolution/filter/emboss.fld +5 -0
- package/dist/fluid/fluid/example/slicing/convolution/filter/gaussian.fld +5 -0
- package/dist/fluid/fluid/example/slicing/convolution/gaussian.expect.fld +1 -0
- package/dist/fluid/fluid/example/slicing/convolution/gaussian.fld +1 -0
- package/dist/fluid/fluid/example/slicing/convolution/test-image.fld +7 -0
- package/dist/fluid/fluid/example/slicing/dict/create.expect.fld +2 -0
- package/dist/fluid/fluid/example/slicing/dict/create.fld +1 -0
- package/dist/fluid/fluid/example/slicing/dict/difference.expect.fld +4 -0
- package/dist/fluid/fluid/example/slicing/dict/difference.fld +3 -0
- package/dist/fluid/fluid/example/slicing/dict/disjointUnion.expect.fld +2 -0
- package/dist/fluid/fluid/example/slicing/dict/disjointUnion.fld +1 -0
- package/dist/fluid/fluid/example/slicing/dict/foldl.expect.fld +3 -0
- package/dist/fluid/fluid/example/slicing/dict/foldl.fld +1 -0
- package/dist/fluid/fluid/example/slicing/dict/get.expect.fld +5 -0
- package/dist/fluid/fluid/example/slicing/dict/get.fld +3 -0
- package/dist/fluid/fluid/example/slicing/dict/intersectionWith.expect.fld +5 -0
- package/dist/fluid/fluid/example/slicing/dict/intersectionWith.fld +4 -0
- package/dist/fluid/fluid/example/slicing/dict/map.expect.fld +8 -0
- package/dist/fluid/fluid/example/slicing/dict/map.fld +5 -0
- package/dist/fluid/fluid/example/slicing/dict/match.expect.fld +6 -0
- package/dist/fluid/fluid/example/slicing/dict/match.fld +5 -0
- package/dist/fluid/fluid/example/slicing/divide.expect.fld +1 -0
- package/dist/fluid/fluid/example/slicing/divide.fld +1 -0
- package/dist/fluid/fluid/example/slicing/dtw/average-series.expect.fld +8 -0
- package/dist/fluid/fluid/example/slicing/dtw/average-series.fld +8 -0
- package/dist/fluid/fluid/example/slicing/dtw/compute-dtw.expect.fld +6 -0
- package/dist/fluid/fluid/example/slicing/dtw/compute-dtw.fld +6 -0
- package/dist/fluid/fluid/example/slicing/explained.expect.fld +1 -0
- package/dist/fluid/fluid/example/slicing/explained.fld +1 -0
- package/dist/fluid/fluid/example/slicing/filter.expect.fld +4 -0
- package/dist/fluid/fluid/example/slicing/filter.fld +6 -0
- package/dist/fluid/fluid/example/slicing/intersperse-1.expect.fld +4 -0
- package/dist/fluid/fluid/example/slicing/intersperse-2.expect.fld +4 -0
- package/dist/fluid/fluid/example/slicing/intersperse.fld +5 -0
- package/dist/fluid/fluid/example/slicing/length.expect.fld +1 -0
- package/dist/fluid/fluid/example/slicing/length.fld +1 -0
- package/dist/fluid/fluid/example/slicing/linked-outputs/bar-chart-line-chart.expect.fld +0 -0
- package/dist/fluid/fluid/example/slicing/linked-outputs/bar-chart-line-chart.fld +29 -0
- package/dist/fluid/fluid/example/slicing/linked-outputs/stacked-bar-scatter-plot.expect.fld +0 -0
- package/dist/fluid/fluid/example/slicing/linked-outputs/stacked-bar-scatter-plot.fld +39 -0
- package/dist/fluid/fluid/example/slicing/list-comp-1.expect.fld +6 -0
- package/dist/fluid/fluid/example/slicing/list-comp-2.expect.fld +6 -0
- package/dist/fluid/fluid/example/slicing/list-comp.fld +8 -0
- package/dist/fluid/fluid/example/slicing/lookup.expect.fld +6 -0
- package/dist/fluid/fluid/example/slicing/lookup.fld +14 -0
- package/dist/fluid/fluid/example/slicing/map.expect.fld +1 -0
- package/dist/fluid/fluid/example/slicing/map.fld +1 -0
- package/dist/fluid/fluid/example/slicing/matrix-update.expect.fld +5 -0
- package/dist/fluid/fluid/example/slicing/matrix-update.fld +10 -0
- package/dist/fluid/fluid/example/slicing/multiply.expect.fld +1 -0
- package/dist/fluid/fluid/example/slicing/multiply.fld +1 -0
- package/dist/fluid/fluid/example/slicing/nth.expect.fld +1 -0
- package/dist/fluid/fluid/example/slicing/nth.fld +1 -0
- package/dist/fluid/fluid/example/slicing/output-not-source.expect.fld +2 -0
- package/dist/fluid/fluid/example/slicing/output-not-source.fld +1 -0
- package/dist/fluid/fluid/example/slicing/section-5-example-1.expect.fld +10 -0
- package/dist/fluid/fluid/example/slicing/section-5-example-2.expect.fld +10 -0
- package/dist/fluid/fluid/example/slicing/section-5-example-3.expect.fld +10 -0
- package/dist/fluid/fluid/example/slicing/section-5-example.fld +14 -0
- package/dist/fluid/fluid/example/slicing/zeros-1.expect.fld +3 -0
- package/dist/fluid/fluid/example/slicing/zeros-2.expect.fld +3 -0
- package/dist/fluid/fluid/example/slicing/zeros.fld +4 -0
- package/dist/fluid/fluid/example/slicing/zipWith-1.expect.fld +4 -0
- package/dist/fluid/fluid/example/slicing/zipWith.fld +4 -0
- package/dist/fluid/fluid/example/text-viz/explainable-table.fld +7 -0
- package/dist/fluid/fluid/example/text-viz/fake-probabilities.fld +3 -0
- package/dist/fluid/fluid/example/text-viz/figure-spm-4.fld +42 -0
- package/dist/fluid/fluid/example/text-viz/left-barchart-table.fld +5 -0
- package/dist/fluid/fluid/example/text-viz/likelihoods.fld +9 -0
- package/dist/fluid/fluid/example/text-viz/right-barchart-table.fld +5 -0
- package/dist/fluid/fluid/example/text-viz/table-spm-1.fld +30 -0
- package/dist/fluid/fluid/lib/convolution.fld +16 -0
- package/dist/fluid/fluid/lib/dtw.fld +47 -0
- package/dist/fluid/fluid/lib/fnum.fld +22 -0
- package/dist/fluid/fluid/lib/graphics.fld +221 -0
- package/dist/fluid/fluid/lib/prelude.fld +266 -0
- package/dist/fluid/fluid/lib/text-viz.fld +18 -0
- package/dist/fluid/fluid.mjs +28285 -0
- package/package.json +1 -1
- package/.spago/node-process/v11.0.0/.eslintrc.json +0 -29
- package/.spago/node-process/v11.0.0/.gitignore +0 -8
- package/.spago/node-process/v11.1.0/.eslintrc.json +0 -29
- package/.spago/node-process/v11.1.0/.gitignore +0 -8
- package/.spago/node-process/v11.2.0/.eslintrc.json +0 -29
- package/.spago/node-process/v11.2.0/.gitignore +0 -8
- package/.spago/optparse/v6.0.0/.gitignore +0 -8
- package/.spago/optparse/v6.0.0/.npmrc +0 -1
- /package/.spago/{argonaut-codecs → pathy}/v9.0.0/.gitignore +0 -0
- /package/.spago/{argonaut-codecs → pathy}/v9.0.0/.tidyrc.json +0 -0
@@ -0,0 +1,139 @@
|
|
1
|
+
-- typedef Year = Num
|
2
|
+
-- typedef Country = Str
|
3
|
+
-- typedef EnergyType = Str
|
4
|
+
-- typedef Output = Num
|
5
|
+
-- typedef CountryData = List (EnergyType, Output)
|
6
|
+
-- typedef AnnualData = List (Country, CountryData)
|
7
|
+
-- typedef Data = List (Year, AnnualData)
|
8
|
+
-- The original dataset sometimes has '~0' instead of '0'.
|
9
|
+
|
10
|
+
-- Including only 3 countries here. Also, have reduced the Hydro value for China 2015 from 296 to 96 (ouch)
|
11
|
+
-- to make the charts fit nicely into my grant proposal. Fix this once proposal submitted!
|
12
|
+
-- https://www.ren21.net/wp-content/uploads/2019/05/GSR2014_Full-Report_English.pdf
|
13
|
+
[
|
14
|
+
(2013, [
|
15
|
+
("China", [
|
16
|
+
("Bio", 6.2),
|
17
|
+
("Hydro", 260),
|
18
|
+
("Solar", 19.9),
|
19
|
+
("Wind", 91)
|
20
|
+
]),
|
21
|
+
("USA", [
|
22
|
+
("Bio", 15.8),
|
23
|
+
("Hydro", 78),
|
24
|
+
("Solar", 12.1),
|
25
|
+
("Wind", 61)
|
26
|
+
]),
|
27
|
+
("Germany", [
|
28
|
+
("Bio", 8.1),
|
29
|
+
("Hydro", 5.6),
|
30
|
+
("Solar", 36),
|
31
|
+
("Wind", 34)
|
32
|
+
])
|
33
|
+
]),
|
34
|
+
-- https://www.ren21.net/wp-content/uploads/2019/05/GSR2015_Full-Report_English.pdf
|
35
|
+
(2014, [
|
36
|
+
("China", [
|
37
|
+
("Bio", 10),
|
38
|
+
("Hydro", 280),
|
39
|
+
("Solar", 28),
|
40
|
+
("Wind", 115)
|
41
|
+
]),
|
42
|
+
("USA", [
|
43
|
+
("Bio", 16.1),
|
44
|
+
("Hydro", 79),
|
45
|
+
("Solar", 18),
|
46
|
+
("Wind", 66)
|
47
|
+
]),
|
48
|
+
("Germany", [
|
49
|
+
("Bio", 8.8),
|
50
|
+
("Hydro", 5.6),
|
51
|
+
("Solar", 38),
|
52
|
+
("Wind", 39)
|
53
|
+
])
|
54
|
+
]),
|
55
|
+
-- https://www.ren21.net/gsr-2016/00-Reference-Tables.php
|
56
|
+
(2015, [
|
57
|
+
("China", [
|
58
|
+
("Bio", 10.3),
|
59
|
+
("Hydro", 96),
|
60
|
+
("Solar", 44),
|
61
|
+
("Wind", 145)
|
62
|
+
]),
|
63
|
+
("USA", [
|
64
|
+
("Bio", 16.7),
|
65
|
+
("Hydro", 80),
|
66
|
+
("Solar", 26),
|
67
|
+
("Wind", 74)
|
68
|
+
]),
|
69
|
+
("Germany", [
|
70
|
+
("Bio", 7.1),
|
71
|
+
("Hydro", 5.6),
|
72
|
+
("Solar", 40),
|
73
|
+
("Wind", 45)
|
74
|
+
])
|
75
|
+
]),
|
76
|
+
-- https://www.ren21.net/gsr-2017/pages/tables/tables/#table-R2
|
77
|
+
(2016, [
|
78
|
+
("China", [
|
79
|
+
("Bio", 12),
|
80
|
+
("Hydro", 305),
|
81
|
+
("Solar", 77),
|
82
|
+
("Wind", 169)
|
83
|
+
]),
|
84
|
+
("USA", [
|
85
|
+
("Bio", 16.8),
|
86
|
+
("Hydro", 80),
|
87
|
+
("Solar", 41),
|
88
|
+
("Wind", 82)
|
89
|
+
]),
|
90
|
+
("Germany", [
|
91
|
+
("Bio", 7.6),
|
92
|
+
("Hydro", 5.6),
|
93
|
+
("Solar", 41),
|
94
|
+
("Wind", 50)
|
95
|
+
])
|
96
|
+
]),
|
97
|
+
-- https://www.ren21.net/gsr-2018/pages/tables/tables/#Table_R2
|
98
|
+
(2017, [
|
99
|
+
("China", [
|
100
|
+
("Bio", 14.9),
|
101
|
+
("Hydro", 313),
|
102
|
+
("Solar", 131),
|
103
|
+
("Wind", 188)
|
104
|
+
]),
|
105
|
+
("USA", [
|
106
|
+
("Bio", 16.7),
|
107
|
+
("Hydro", 80),
|
108
|
+
("Solar", 51),
|
109
|
+
("Wind", 89)
|
110
|
+
]),
|
111
|
+
("Germany", [
|
112
|
+
("Bio", 8),
|
113
|
+
("Hydro", 5.6),
|
114
|
+
("Solar", 42),
|
115
|
+
("Wind", 56)
|
116
|
+
])
|
117
|
+
]),
|
118
|
+
-- https://www.ren21.net/gsr-2019/tables/table_02/table_02/
|
119
|
+
(2018, [
|
120
|
+
("China", [
|
121
|
+
("Bio", 17.8),
|
122
|
+
("Hydro", 322),
|
123
|
+
("Solar", 176),
|
124
|
+
("Wind", 210)
|
125
|
+
]),
|
126
|
+
("USA", [
|
127
|
+
("Bio", 16.2),
|
128
|
+
("Hydro", 80),
|
129
|
+
("Solar", 62),
|
130
|
+
("Wind", 96)
|
131
|
+
]),
|
132
|
+
("Germany", [
|
133
|
+
("Bio", 8.4),
|
134
|
+
("Hydro", 5.6),
|
135
|
+
("Solar", 45),
|
136
|
+
("Wind", 59)
|
137
|
+
])
|
138
|
+
])
|
139
|
+
]
|
@@ -0,0 +1,100 @@
|
|
1
|
+
-- The original dataset sometimes has '~0' instead of '0'.
|
2
|
+
-- Including only 3 countries here. Also, have reduced the Hydro value for China 2015 from 296 to 96 (ouch)
|
3
|
+
-- to make the charts fit nicely into grant proposal. Fix this once proposal submitted!
|
4
|
+
[
|
5
|
+
-- https://www.ren21.net/wp-content/uploads/2019/05/GSR2014_Full-Report_English.pdf
|
6
|
+
{ year: 2013, country: "China", energyType: "Bio", output: 6.2 },
|
7
|
+
{ year: 2013, country: "China", energyType: "Hydro", output: 260 },
|
8
|
+
{ year: 2013, country: "China", energyType: "Solar", output: 19.9 },
|
9
|
+
{ year: 2013, country: "China", energyType: "Wind", output: 91 },
|
10
|
+
|
11
|
+
{ year: 2013, country: "USA", energyType: "Bio", output: 15.8 },
|
12
|
+
{ year: 2013, country: "USA", energyType: "Hydro", output: 78 },
|
13
|
+
{ year: 2013, country: "USA", energyType: "Solar", output: 12.1 },
|
14
|
+
{ year: 2013, country: "USA", energyType: "Wind", output: 61 },
|
15
|
+
|
16
|
+
{ year: 2013, country: "Germany", energyType: "Bio", output: 8.1 },
|
17
|
+
{ year: 2013, country: "Germany", energyType: "Hydro", output: 5.6 },
|
18
|
+
{ year: 2013, country: "Germany", energyType: "Solar", output: 36 },
|
19
|
+
{ year: 2013, country: "Germany", energyType: "Wind", output: 34 },
|
20
|
+
|
21
|
+
-- https://www.ren21.net/wp-content/uploads/2019/05/GSR2015_Full-Report_English.pdf
|
22
|
+
{ year: 2014, country: "China", energyType: "Bio", output: 10 },
|
23
|
+
{ year: 2014, country: "China", energyType: "Hydro", output: 280 },
|
24
|
+
{ year: 2014, country: "China", energyType: "Solar", output: 28 },
|
25
|
+
{ year: 2014, country: "China", energyType: "Wind", output: 115 },
|
26
|
+
|
27
|
+
{ year: 2014, country: "USA", energyType: "Bio", output: 16.1 },
|
28
|
+
{ year: 2014, country: "USA", energyType: "Hydro", output: 79 },
|
29
|
+
{ year: 2014, country: "USA", energyType: "Solar", output: 18 },
|
30
|
+
{ year: 2014, country: "USA", energyType: "Wind", output: 66 },
|
31
|
+
|
32
|
+
{ year: 2014, country: "Germany", energyType: "Bio", output: 8.8 },
|
33
|
+
{ year: 2014, country: "Germany", energyType: "Hydro", output: 5.6 },
|
34
|
+
{ year: 2014, country: "Germany", energyType: "Solar", output: 38 },
|
35
|
+
{ year: 2014, country: "Germany", energyType: "Wind", output: 39 },
|
36
|
+
|
37
|
+
-- https://www.ren21.net/gsr-2016/00-Reference-Tables.php
|
38
|
+
{ year: 2015, country: "China", energyType: "Bio", output: 10.3 },
|
39
|
+
{ year: 2015, country: "China", energyType: "Hydro", output: 96 },
|
40
|
+
{ year: 2015, country: "China", energyType: "Solar", output: 44 },
|
41
|
+
{ year: 2015, country: "China", energyType: "Wind", output: 145 },
|
42
|
+
|
43
|
+
{ year: 2015, country: "USA", energyType: "Bio", output: 16.7 },
|
44
|
+
{ year: 2015, country: "USA", energyType: "Hydro", output: 80 },
|
45
|
+
{ year: 2015, country: "USA", energyType: "Solar", output: 26 },
|
46
|
+
{ year: 2015, country: "USA", energyType: "Wind", output: 74 },
|
47
|
+
|
48
|
+
{ year: 2015, country: "Germany", energyType: "Bio", output: 7.1 },
|
49
|
+
{ year: 2015, country: "Germany", energyType: "Hydro", output: 5.6 },
|
50
|
+
{ year: 2015, country: "Germany", energyType: "Solar", output: 40 },
|
51
|
+
{ year: 2015, country: "Germany", energyType: "Wind", output: 45 },
|
52
|
+
|
53
|
+
-- https://www.ren21.net/gsr-2017/pages/tables/tables/#table-R2
|
54
|
+
{ year: 2016, country: "China", energyType: "Bio", output: 12 },
|
55
|
+
{ year: 2016, country: "China", energyType: "Hydro", output: 305 },
|
56
|
+
{ year: 2016, country: "China", energyType: "Solar", output: 77 },
|
57
|
+
{ year: 2016, country: "China", energyType: "Wind", output: 169 },
|
58
|
+
|
59
|
+
{ year: 2016, country: "USA", energyType: "Bio", output: 16.8 },
|
60
|
+
{ year: 2016, country: "USA", energyType: "Hydro", output: 80 },
|
61
|
+
{ year: 2016, country: "USA", energyType: "Solar", output: 41 },
|
62
|
+
{ year: 2016, country: "USA", energyType: "Wind", output: 82 },
|
63
|
+
|
64
|
+
{ year: 2016, country: "Germany", energyType: "Bio", output: 7.6 },
|
65
|
+
{ year: 2016, country: "Germany", energyType: "Hydro", output: 5.6 },
|
66
|
+
{ year: 2016, country: "Germany", energyType: "Solar", output: 41 },
|
67
|
+
{ year: 2016, country: "Germany", energyType: "Wind", output: 50 },
|
68
|
+
|
69
|
+
-- https://www.ren21.net/gsr-2018/pages/tables/tables/#Table_R2
|
70
|
+
{ year: 2017, country: "China", energyType: "Bio", output: 14.9 },
|
71
|
+
{ year: 2017, country: "China", energyType: "Hydro", output: 313 },
|
72
|
+
{ year: 2017, country: "China", energyType: "Solar", output: 131 },
|
73
|
+
{ year: 2017, country: "China", energyType: "Wind", output: 188},
|
74
|
+
|
75
|
+
{ year: 2017, country: "USA", energyType: "Bio", output: 16.7 },
|
76
|
+
{ year: 2017, country: "USA", energyType: "Hydro", output: 80 },
|
77
|
+
{ year: 2017, country: "USA", energyType: "Solar", output: 51 },
|
78
|
+
{ year: 2017, country: "USA", energyType: "Wind", output: 89 },
|
79
|
+
|
80
|
+
{ year: 2017, country: "Germany", energyType: "Bio", output: 8 },
|
81
|
+
{ year: 2017, country: "Germany", energyType: "Hydro", output: 5.6 },
|
82
|
+
{ year: 2017, country: "Germany", energyType: "Solar", output: 42 },
|
83
|
+
{ year: 2017, country: "Germany", energyType: "Wind", output: 56 },
|
84
|
+
|
85
|
+
-- https://www.ren21.net/gsr-2019/tables/table_02/table_02/
|
86
|
+
{ year: 2018, country: "China", energyType: "Bio", output: 17.8 },
|
87
|
+
{ year: 2018, country: "China", energyType: "Hydro", output: 322 },
|
88
|
+
{ year: 2018, country: "China", energyType: "Solar", output: 176 },
|
89
|
+
{ year: 2018, country: "China", energyType: "Wind", output: 210 },
|
90
|
+
|
91
|
+
{ year: 2018, country: "USA", energyType: "Bio", output: 16.2 },
|
92
|
+
{ year: 2018, country: "USA", energyType: "Hydro", output: 80 },
|
93
|
+
{ year: 2018, country: "USA", energyType: "Solar", output: 62 },
|
94
|
+
{ year: 2018, country: "USA", energyType: "Wind", output: 96 },
|
95
|
+
|
96
|
+
{ year: 2018, country: "Germany", energyType: "Bio", output: 8.4 },
|
97
|
+
{ year: 2018, country: "Germany", energyType: "Hydro", output: 5.6 },
|
98
|
+
{ year: 2018, country: "Germany", energyType: "Solar", output: 45 },
|
99
|
+
{ year: 2018, country: "Germany", energyType: "Wind", output: 59 }
|
100
|
+
]
|
@@ -0,0 +1 @@
|
|
1
|
+
(1 + 5) * ((let x = 2; y = 8 in x * y) - (let y = 3 in y * y))
|
@@ -0,0 +1 @@
|
|
1
|
+
[ x + y | x <- [5, 4, 3], y <- [9, 7, 5] ]
|
@@ -0,0 +1 @@
|
|
1
|
+
[ x | [x] <- [[], [4, 6]] ]
|
@@ -0,0 +1 @@
|
|
1
|
+
[ z | x <- [5, 4, 3], y <- [9, 7, 5], let z = x + y, c <- [9, 7, 5] ]
|
@@ -0,0 +1 @@
|
|
1
|
+
[ z | x <- [5, 4, 3], y <- [9, 7, 5], let z = x + y, z < 10 ]
|
@@ -0,0 +1 @@
|
|
1
|
+
[ x | x : xs <- [[5], [4], [3], []] ]
|
@@ -0,0 +1 @@
|
|
1
|
+
[ z | x <- [5, 4, 3], let z = x ]
|
@@ -0,0 +1 @@
|
|
1
|
+
[ z | let z = 5 ]
|
@@ -0,0 +1 @@
|
|
1
|
+
[ [] | [] <- [[5], [4], [3], []] ]
|
@@ -0,0 +1 @@
|
|
1
|
+
[ x | [x] <- [[5], [4], [3], []] ]
|
@@ -0,0 +1 @@
|
|
1
|
+
[ x + y | [x, y] <- [[5], [4, 6], [3], [], [9, 10]] ]
|
@@ -0,0 +1 @@
|
|
1
|
+
[3..7]
|
@@ -0,0 +1 @@
|
|
1
|
+
[ x | {fst: x, snd: []} <- [{fst: 5, third: "hello", snd: []}, {fst: 6, snd: [7, 8]}] ]
|
@@ -0,0 +1 @@
|
|
1
|
+
filter ((<) 5) [8, 4, 7, 3]
|
@@ -0,0 +1 @@
|
|
1
|
+
zipWith (:) [10, 12, 20] [[], [], [], [], []]
|
@@ -0,0 +1,12 @@
|
|
1
|
+
let
|
2
|
+
flatten Empty = [];
|
3
|
+
flatten (NonEmpty t1 (key, val) t2) =
|
4
|
+
concat2 (flatten t1) ((key, val) : flatten t2)
|
5
|
+
in
|
6
|
+
flatten
|
7
|
+
(NonEmpty
|
8
|
+
(NonEmpty Empty (3, "simon") Empty)
|
9
|
+
(4, "john")
|
10
|
+
(NonEmpty (NonEmpty Empty (6, "sarah") Empty) (7, "claire") Empty)
|
11
|
+
)
|
12
|
+
|
@@ -0,0 +1 @@
|
|
1
|
+
foldr (fun x y -> x * x + y * y) 0 [6, 3, 2]
|
@@ -0,0 +1,9 @@
|
|
1
|
+
let year = 2015;
|
2
|
+
-- List (Country, List (EnergyType, Output)) -> List (Country, List (EnergyType, Output))
|
3
|
+
let exclude countries yearData =
|
4
|
+
flip map yearData (second (filter (fun (country, countryData) -> not (elem country countries))))
|
5
|
+
in caption ("Renewables (GW) by country and energy type, " ++ numToStr year)
|
6
|
+
(groupedBarChart True colours1 0.2
|
7
|
+
(exclude
|
8
|
+
[] -- ["Geothermal", "Ocean", "CSP"]
|
9
|
+
(lookup year data)))
|
@@ -0,0 +1,13 @@
|
|
1
|
+
let year1 = head data;
|
2
|
+
-- List (EnergyType, Output) -> List (EnergyType, Output)
|
3
|
+
let addTotal kvs =
|
4
|
+
("Total", sum (map snd kvs)) : kvs;
|
5
|
+
-- Country -> List (Year, List (EnergyType, Output))
|
6
|
+
let countryData country =
|
7
|
+
map (second (compose addTotal (lookup country))) data in
|
8
|
+
-- List Country
|
9
|
+
(fun country ->
|
10
|
+
caption country
|
11
|
+
(lineChart True ("black" : colours1) (fst year1)
|
12
|
+
(countryData country)))
|
13
|
+
"China"
|
@@ -0,0 +1 @@
|
|
1
|
+
(x, x)
|
@@ -0,0 +1 @@
|
|
1
|
+
length [2, 3]
|
@@ -0,0 +1 @@
|
|
1
|
+
let x = 1;
|
@@ -0,0 +1,24 @@
|
|
1
|
+
let isCountry name x = name == x.country;
|
2
|
+
isYear year x = year == x.year;
|
3
|
+
|
4
|
+
let plot year countries =
|
5
|
+
let rens = filter (isYear year) renewables;
|
6
|
+
nonRens = filter (isYear year) nonRenewables;
|
7
|
+
let plotCountry country =
|
8
|
+
let rens' = filter (isCountry country) rens;
|
9
|
+
rensOut = sum (map (fun x -> x.output) rens');
|
10
|
+
rensCap = sum (map (fun x -> x.capacity) rens');
|
11
|
+
x = head (filter (isCountry country) nonRens);
|
12
|
+
nonRensCap = x.nuclearCap + x.petrolCap + x.gasCap + x.coalCap
|
13
|
+
in {
|
14
|
+
x: rensCap / (rensCap + nonRensCap),
|
15
|
+
y: (rensOut + x.nuclearOut) / (rensCap + x.nuclearCap)
|
16
|
+
}
|
17
|
+
in map plotCountry countries
|
18
|
+
|
19
|
+
in ScatterPlot {
|
20
|
+
caption: "Clean energy efficiency vs. proportion of renewable energy capacity",
|
21
|
+
points: plot 2018 [ "BRA", "CHN", "DEU", "FRA", "EGY", "IND", "JPN", "MEX", "NGA", "USA" ],
|
22
|
+
xlabel: "Renewables/TotalEnergyCap",
|
23
|
+
ylabel: "Clean Capacity Factor"
|
24
|
+
}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
let sumNonRenewables x = x.nuclearCap + x.petrolCap + x.gasCap + x.coalCap;
|
2
|
+
let country_check name x = name == x.country;
|
3
|
+
let year_check year x = year == x.year;
|
4
|
+
|
5
|
+
let energy year c_names =
|
6
|
+
let rens2018 = filter (year_check year) renewables;
|
7
|
+
let nonrens2018 = filter (year_check year) nonRenewables;
|
8
|
+
let energy_per_country c_name =
|
9
|
+
let filteredRen = filter (country_check c_name) rens2018;
|
10
|
+
let non_ren_x = head (filter (country_check c_name) nonrens2018);
|
11
|
+
let rensOut = sum (map (fun x = x.output) filteredRen);
|
12
|
+
let rensCap = sum (map (fun x = x.capacity) filteredRen);
|
13
|
+
let nonRensCap = sumNonRenewables non_ren_x
|
14
|
+
in {
|
15
|
+
name: c_name,
|
16
|
+
totalCap: rensCap + nonRensCap,
|
17
|
+
nonRenewables: nonRensCap,
|
18
|
+
renCapFactor: (rensOut + non_ren_x.nuclearOut) / (rensCap + non_ren_x.nuclearCap)
|
19
|
+
}
|
20
|
+
in
|
21
|
+
map energy_per_country c_names
|
22
|
+
in ScatterPlot {
|
23
|
+
caption: "Clean energy efficiency against proportion of renewable energy cap",
|
24
|
+
points: [{
|
25
|
+
x: country.nonRenewables / country.totalCap,
|
26
|
+
y: country.renCapFactor
|
27
|
+
}| country <- energy 2018 ["USA"]],
|
28
|
+
xlabel: "Renewables/TotalEnergyCap",
|
29
|
+
ylabel: "Clean Capacity Factor"
|
30
|
+
}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
(let filter' = [[0, 0, 0],
|
2
|
+
[3, 7, 1],
|
3
|
+
[0, 0, 0]];
|
4
|
+
filter = [| nth2 i j filter' | (i, j) in (3, 3) |];
|
5
|
+
image = [| nth2 i j data | (i, j) in (5, 5) |]
|
6
|
+
in convolve image filter wrap,
|
7
|
+
let filter' = [[0, 2, 0],
|
8
|
+
[0, 7, 0],
|
9
|
+
[0, 5, 0]];
|
10
|
+
filter = [| nth2 i j filter' | (i, j) in (3, 3) |];
|
11
|
+
image = [| nth2 i j data | (i, j) in (5, 5) |]
|
12
|
+
in convolve image filter zero)
|
@@ -0,0 +1,15 @@
|
|
1
|
+
let series type country = [
|
2
|
+
{ x: row.year, y: row.output }
|
3
|
+
| year <- [2013..2018], row <- renewables,
|
4
|
+
row.year == year, row.energyType == type, row.country == country
|
5
|
+
] in LineChart {
|
6
|
+
tickLabels: { x: Default, y: Default },
|
7
|
+
caption: "Change in renewable energy output of USA relative to China",
|
8
|
+
size: { width: 330, height: 285 },
|
9
|
+
plots: [
|
10
|
+
LinePlot { name: type, points: plot }
|
11
|
+
| type <- ["Bio", "Hydro", "Solar", "Wind"],
|
12
|
+
let plot = zipWith (fun p1 p2 -> { x: p1.x, y: p1.y / p2.y })
|
13
|
+
(series type "USA") (series type "China")
|
14
|
+
]
|
15
|
+
}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
let nthPad n xs =
|
2
|
+
nth (min (max n 0) (length xs - 1)) xs;
|
3
|
+
movingAvg ys window =
|
4
|
+
[ sum [ nthPad n ys | n <- [ i - window .. i + window ] ] / (1 + 2 * window)
|
5
|
+
| i <- [ 0 .. length ys - 1 ] ];
|
6
|
+
movingAvg' rs window =
|
7
|
+
zipWith
|
8
|
+
(fun x y -> {x: x, y: y})
|
9
|
+
(map (fun r -> r.x) rs)
|
10
|
+
(movingAvg (map (fun r -> r.y) rs) window);
|
11
|
+
let points =
|
12
|
+
[ { x: r.year, y: r.emissions } | r <- methane, r.type == "Agriculture" ]
|
13
|
+
in LineChart {
|
14
|
+
tickLabels: { x: Rotated, y: Default },
|
15
|
+
size: { width: 330, height: 285 },
|
16
|
+
caption: "SSP5-8.5 projected methane emissions (Agriculture)",
|
17
|
+
plots: [ LinePlot { name: "Moving average", points: movingAvg' points 1 },
|
18
|
+
LinePlot { name: "Original curve", points: points } ]
|
19
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
(3, 7)
|
@@ -0,0 +1,15 @@
|
|
1
|
+
let lookup k Empty = None;
|
2
|
+
lookup k (NonEmpty t1 (key, val) t2) =
|
3
|
+
match compare k key as {
|
4
|
+
LT -> lookup k t1;
|
5
|
+
EQ -> Some val;
|
6
|
+
GT -> lookup k t2
|
7
|
+
}
|
8
|
+
in
|
9
|
+
lookup
|
10
|
+
6
|
11
|
+
(NonEmpty
|
12
|
+
(NonEmpty Empty (3, "simon") Empty)
|
13
|
+
(4, "john")
|
14
|
+
(NonEmpty (NonEmpty Empty (6, "sarah") Empty) (7, "claire") Empty)
|
15
|
+
)
|
@@ -0,0 +1 @@
|
|
1
|
+
map ((+) 1) [4, 6, 12, 14, 3, 2, -4]
|
@@ -0,0 +1,22 @@
|
|
1
|
+
let split [] = ([], []);
|
2
|
+
split (x : xs) =
|
3
|
+
let (ys, zs) = split xs in (x : zs, ys);
|
4
|
+
|
5
|
+
merge xs ys =
|
6
|
+
match (xs, ys) as {
|
7
|
+
([], _) -> ys;
|
8
|
+
(x : xs', []) -> xs;
|
9
|
+
(x : xs', y : ys') ->
|
10
|
+
if x < y
|
11
|
+
then x : merge xs' ys
|
12
|
+
else y : merge xs ys'
|
13
|
+
};
|
14
|
+
|
15
|
+
mergesort xs =
|
16
|
+
if length xs < 2
|
17
|
+
then xs
|
18
|
+
else
|
19
|
+
let (ys, zs) = split xs in
|
20
|
+
merge (mergesort ys) (mergesort zs)
|
21
|
+
in
|
22
|
+
mergesort [3, 1, 2]
|
@@ -0,0 +1 @@
|
|
1
|
+
nub [1, 2, 3, 3, 4]
|
@@ -0,0 +1,12 @@
|
|
1
|
+
-- Silly test of pattern-matching for list notation
|
2
|
+
let
|
3
|
+
zip3 [] [] = [];
|
4
|
+
zip3 [x1] [y1] = (x1, y1) : zip3 [] [];
|
5
|
+
zip3 [x1, x2] [y1, y2] =
|
6
|
+
(x1, y1) : zip3 [x2] [y2];
|
7
|
+
zip3 [x1, x2, x3] [y1, y2, y3] =
|
8
|
+
(x1 , y1) : zip3 [x2, x3] [y2, y3];
|
9
|
+
zip3 (x1 : x2 : x3 : x4 : xs) (y1 : y2 : y3 : y4 : ys) =
|
10
|
+
(x1, y1) : (x2, y2) : (x3, y3) : (x4, y4) : zip3 xs ys
|
11
|
+
in
|
12
|
+
length (zip3 [3, 4, 5, 6] [5, 6, 7, 8])
|
@@ -0,0 +1 @@
|
|
1
|
+
mkPercent 0.25
|
@@ -0,0 +1,14 @@
|
|
1
|
+
let series type = [
|
2
|
+
{ x: row.year, y: row.emissions }
|
3
|
+
| row <- methane, row.type == type
|
4
|
+
] in LineChart {
|
5
|
+
size: { width: 450, height: 285 },
|
6
|
+
tickLabels: { x: Rotated, y: Default },
|
7
|
+
caption: "Sources of methane emissions for Africa and the Middle East (IPCC AR6)",
|
8
|
+
plots: [
|
9
|
+
LinePlot { name: type, points: series type }
|
10
|
+
| type <- ["Agricultural Waste Burning", "Agriculture", "Energy Sector",
|
11
|
+
"Forest Burning", "Grassland Burning", "Industrial Sector",
|
12
|
+
"Residential Commercial Other", "Transportation Sector", "Waste"]
|
13
|
+
]
|
14
|
+
}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
let countries = ["BRA", "EGY", "IND", "JPN"];
|
2
|
+
let totalFor year country =
|
3
|
+
let [ row ] = [ row | row <- nonRenewables, row.year == year, row.country == country ]
|
4
|
+
in row.nuclearOut + row.gasOut + row.coalOut + row.petrolOut;
|
5
|
+
stack year = [ { y: country, z: totalFor year country } | country <- countries ];
|
6
|
+
yearData year = [ row | row <- nonRenewables, row.year == year, row.country `elem` countries ]
|
7
|
+
in MultiView {
|
8
|
+
barChart: BarChart {
|
9
|
+
caption: "Non-renewables output",
|
10
|
+
size: { width: 275, height: 185 },
|
11
|
+
stackedBars: [ { x: numToStr year, bars: stack year } | year <- [2014..2018] ]
|
12
|
+
},
|
13
|
+
scatterPlot: ScatterPlot {
|
14
|
+
caption: "",
|
15
|
+
points: [ {
|
16
|
+
x: sum [ row.nuclearOut | row <- yearData year ],
|
17
|
+
y: sum [ row.nuclearCap | row <- yearData year ]
|
18
|
+
} | year <- [2014..2018] ],
|
19
|
+
xlabel: "Nuclear capacity",
|
20
|
+
ylabel: "Nuclear output"
|
21
|
+
}
|
22
|
+
}
|
File without changes
|