Skip to main content

Datasets

The troubleshooting data the assignments are marked against. All of it is synthetic, all of it is labelled, and this page says exactly how each set was made.

Everything on this page is synthetic. None of it is a measurement. It is generated so that the assignments have data with a diagnosable answer, and it is labelled in the page, in the filenames and in the first line of every file so that it cannot be mistaken for observation later.

Aquaponic cycling log

Sixty days of water chemistry from a 1,000 L system with a 4 m2 grow bed, constructed from the textbook shape of a nitrogen cycle with one fault deliberately introduced so that the dataset has a diagnosable answer.

What it is not: A measured log from a real system. The noise is generated, not observed.

025Ammonia (mg/L) Day 1 · Ammonia 0.83 mg/L Day 2 · Ammonia 1.21 mg/L Day 3 · Ammonia 1.67 mg/L Day 4 · Ammonia 2.07 mg/L Day 5 · Ammonia 2.52 mg/L Day 6 · Ammonia 2.92 mg/L Day 7 · Ammonia 3.36 mg/L Day 8 · Ammonia 3.78 mg/L Day 9 · Ammonia 3.38 mg/L Day 10 · Ammonia 2.94 mg/L Day 11 · Ammonia 2.52 mg/L Day 12 · Ammonia 2.13 mg/L Day 13 · Ammonia 1.73 mg/L Day 14 · Ammonia 1.29 mg/L Day 15 · Ammonia 0.85 mg/L Day 16 · Ammonia 0.44 mg/L Day 17 · Ammonia 0.38 mg/L Day 18 · Ammonia 0.35 mg/L Day 19 · Ammonia 0.3 mg/L Day 20 · Ammonia 0.28 mg/L Day 21 · Ammonia 0.23 mg/L Day 22 · Ammonia 0.18 mg/L Day 23 · Ammonia 0.09 mg/L Day 24 · Ammonia 0.03 mg/L Day 25 · Ammonia 0.08 mg/L Day 26 · Ammonia 0.08 mg/L Day 27 · Ammonia 0.1 mg/L Day 28 · Ammonia 0.13 mg/L Day 29 · Ammonia 0.1 mg/L Day 30 · Ammonia 0.13 mg/L Day 31 · Ammonia 0.13 mg/L Day 32 · Ammonia 0.15 mg/L Day 33 · Ammonia 0.18 mg/L Day 34 · Ammonia 0.18 mg/L Day 35 · Ammonia 0.19 mg/L Day 36 · Ammonia 0.19 mg/L Day 37 · Ammonia 0.23 mg/L Day 38 · Ammonia 0.25 mg/L Day 39 · Ammonia 0.27 mg/L Day 40 · Ammonia 0.25 mg/L Day 41 · Ammonia 0.28 mg/L Day 42 · Ammonia 0.28 mg/L Day 43 · Ammonia 0.32 mg/L Day 44 · Ammonia 0.32 mg/L Day 45 · Ammonia 0.32 mg/L Day 46 · Ammonia 0.28 mg/L Day 47 · Ammonia 0.28 mg/L Day 48 · Ammonia 0.27 mg/L Day 49 · Ammonia 0.25 mg/L Day 50 · Ammonia 0.21 mg/L Day 51 · Ammonia 0.23 mg/L Day 52 · Ammonia 0.17 mg/L Day 53 · Ammonia 0.18 mg/L Day 54 · Ammonia 0.16 mg/L Day 55 · Ammonia 0.09 mg/L Day 56 · Ammonia 0.08 mg/L Day 57 · Ammonia 0.07 mg/L Day 58 · Ammonia 0.05 mg/L Day 59 · Ammonia 0.06 mg/L Day 60 · Ammonia 0.06 mg/L 047Nitrite (mg/L) Day 1 · Nitrite 0.1 mg/L Day 2 · Nitrite 0.14 mg/L Day 3 · Nitrite 0.1 mg/L Day 4 · Nitrite 0.21 mg/L Day 5 · Nitrite 0.19 mg/L Day 6 · Nitrite 0.27 mg/L Day 7 · Nitrite 0.32 mg/L Day 8 · Nitrite 0.36 mg/L Day 9 · Nitrite 1 mg/L Day 10 · Nitrite 1.47 mg/L Day 11 · Nitrite 2 mg/L Day 12 · Nitrite 2.59 mg/L Day 13 · Nitrite 3.18 mg/L Day 14 · Nitrite 3.73 mg/L Day 15 · Nitrite 4.21 mg/L Day 16 · Nitrite 4.81 mg/L Day 17 · Nitrite 4.15 mg/L Day 18 · Nitrite 3.61 mg/L Day 19 · Nitrite 2.88 mg/L Day 20 · Nitrite 2.33 mg/L Day 21 · Nitrite 1.71 mg/L Day 22 · Nitrite 1.03 mg/L Day 23 · Nitrite 0.52 mg/L Day 24 · Nitrite 0.07 mg/L Day 25 · Nitrite 0.36 mg/L Day 26 · Nitrite 0.64 mg/L Day 27 · Nitrite 0.98 mg/L Day 28 · Nitrite 1.21 mg/L Day 29 · Nitrite 1.51 mg/L Day 30 · Nitrite 1.78 mg/L Day 31 · Nitrite 2.17 mg/L Day 32 · Nitrite 2.45 mg/L Day 33 · Nitrite 2.73 mg/L Day 34 · Nitrite 2.98 mg/L Day 35 · Nitrite 3.27 mg/L Day 36 · Nitrite 3.62 mg/L Day 37 · Nitrite 3.85 mg/L Day 38 · Nitrite 4.14 mg/L Day 39 · Nitrite 4.47 mg/L Day 40 · Nitrite 4.71 mg/L Day 41 · Nitrite 5.05 mg/L Day 42 · Nitrite 5.34 mg/L Day 43 · Nitrite 5.63 mg/L Day 44 · Nitrite 5.86 mg/L Day 45 · Nitrite 6.12 mg/L Day 46 · Nitrite 5.84 mg/L Day 47 · Nitrite 5.4 mg/L Day 48 · Nitrite 4.94 mg/L Day 49 · Nitrite 4.57 mg/L Day 50 · Nitrite 4.09 mg/L Day 51 · Nitrite 3.66 mg/L Day 52 · Nitrite 3.29 mg/L Day 53 · Nitrite 2.81 mg/L Day 54 · Nitrite 2.47 mg/L Day 55 · Nitrite 2.05 mg/L Day 56 · Nitrite 1.56 mg/L Day 57 · Nitrite 1.13 mg/L Day 58 · Nitrite 0.73 mg/L Day 59 · Nitrite 0.37 mg/L Day 60 · Nitrite 0.09 mg/L 03570Nitrate (mg/L) Day 1 · Nitrate 0.4 mg/L Day 2 · Nitrate 1.1 mg/L Day 3 · Nitrate 1 mg/L Day 4 · Nitrate 1.1 mg/L Day 5 · Nitrate 2.3 mg/L Day 6 · Nitrate 2.2 mg/L Day 7 · Nitrate 3.2 mg/L Day 8 · Nitrate 2.5 mg/L Day 9 · Nitrate 4.8 mg/L Day 10 · Nitrate 5.3 mg/L Day 11 · Nitrate 6.8 mg/L Day 12 · Nitrate 8.8 mg/L Day 13 · Nitrate 10.4 mg/L Day 14 · Nitrate 11.2 mg/L Day 15 · Nitrate 13.1 mg/L Day 16 · Nitrate 14.2 mg/L Day 17 · Nitrate 15.5 mg/L Day 18 · Nitrate 17.8 mg/L Day 19 · Nitrate 20.8 mg/L Day 20 · Nitrate 22.9 mg/L Day 21 · Nitrate 24.3 mg/L Day 22 · Nitrate 26.6 mg/L Day 23 · Nitrate 29.3 mg/L Day 24 · Nitrate 31.1 mg/L Day 25 · Nitrate 31.8 mg/L Day 26 · Nitrate 31.8 mg/L Day 27 · Nitrate 32.8 mg/L Day 28 · Nitrate 32.7 mg/L Day 29 · Nitrate 33.3 mg/L Day 30 · Nitrate 33.4 mg/L Day 31 · Nitrate 34.5 mg/L Day 32 · Nitrate 35.3 mg/L Day 33 · Nitrate 35.1 mg/L Day 34 · Nitrate 35.6 mg/L Day 35 · Nitrate 36.5 mg/L Day 36 · Nitrate 36.7 mg/L Day 37 · Nitrate 37.7 mg/L Day 38 · Nitrate 38.7 mg/L Day 39 · Nitrate 38.3 mg/L Day 40 · Nitrate 38.8 mg/L Day 41 · Nitrate 39.1 mg/L Day 42 · Nitrate 40.1 mg/L Day 43 · Nitrate 40.8 mg/L Day 44 · Nitrate 41 mg/L Day 45 · Nitrate 40.8 mg/L Day 46 · Nitrate 43.2 mg/L Day 47 · Nitrate 43.8 mg/L Day 48 · Nitrate 45.7 mg/L Day 49 · Nitrate 48.1 mg/L Day 50 · Nitrate 48.8 mg/L Day 51 · Nitrate 50.2 mg/L Day 52 · Nitrate 52.5 mg/L Day 53 · Nitrate 53.7 mg/L Day 54 · Nitrate 55.3 mg/L Day 55 · Nitrate 56.4 mg/L Day 56 · Nitrate 58.9 mg/L Day 57 · Nitrate 60.3 mg/L Day 58 · Nitrate 61.4 mg/L Day 59 · Nitrate 62.9 mg/L Day 60 · Nitrate 65.1 mg/L 5.96.77.4pH Day 1 · pH 7.06 Day 2 · pH 7.08 Day 3 · pH 7.06 Day 4 · pH 7.04 Day 5 · pH 7.06 Day 6 · pH 6.99 Day 7 · pH 7 Day 8 · pH 6.97 Day 9 · pH 6.93 Day 10 · pH 6.93 Day 11 · pH 6.93 Day 12 · pH 6.87 Day 13 · pH 6.85 Day 14 · pH 6.85 Day 15 · pH 6.81 Day 16 · pH 6.8 Day 17 · pH 6.77 Day 18 · pH 6.72 Day 19 · pH 6.73 Day 20 · pH 6.68 Day 21 · pH 6.64 Day 22 · pH 6.6 Day 23 · pH 6.6 Day 24 · pH 6.56 Day 25 · pH 6.52 Day 26 · pH 6.56 Day 27 · pH 6.46 Day 28 · pH 6.49 Day 29 · pH 6.43 Day 30 · pH 6.43 Day 31 · pH 6.42 Day 32 · pH 6.35 Day 33 · pH 6.35 Day 34 · pH 6.32 Day 35 · pH 6.29 Day 36 · pH 6.3 Day 37 · pH 6.27 Day 38 · pH 6.21 Day 39 · pH 6.25 Day 40 · pH 6.23 Day 41 · pH 6.18 Day 42 · pH 6.14 Day 43 · pH 6.16 Day 44 · pH 6.13 Day 45 · pH 6.1 Day 46 · pH 6.21 Day 47 · pH 6.29 Day 48 · pH 6.38 Day 49 · pH 6.45 Day 50 · pH 6.48 Day 51 · pH 6.52 Day 52 · pH 6.61 Day 53 · pH 6.65 Day 54 · pH 6.69 Day 55 · pH 6.79 Day 56 · pH 6.82 Day 57 · pH 6.92 Day 58 · pH 7 Day 59 · pH 7.07 Day 60 · pH 7.06 11020253040465060Daybuffer added, day 46fault window
synthetic dataSixty days of a 1,000 L system with a 4 m² grow bed. The shaded band is the fault window; the dashed line is the day the operator intervened. Generated by research/model/make_datasets.py.

The first three weeks are an ordinary cycle: ammonia rises as fish are fed and falls as the first group of nitrifiers establishes, nitrite rises and falls behind it as the second group follows, and nitrate accumulates because nothing in the system removes it except the plants.

Then something goes wrong, and the point of the exercise is that the symptom and the cause are different variables. Nitrite climbs again from day 25 while ammonia stays low — so the first nitrification step is still working and the second is not. Read the carbonate hardness column and the reason is there: it has been falling since day one, because nitrification consumes alkalinity and nothing replaced it. pH follows it down through 6.4, and below that the organisms oxidising nitrite slow markedly.

A student who reads only pH and nitrite will diagnose "pH crash" and buffer the system, which is what the operator did on day 46 and which does work. A student who reads the hardness column will notice that the same thing will happen again in seven weeks unless the feed rate and the buffering are reconciled. Both answers are defensible; only one of them is an engineering answer.

DayTemp °CpHKH mg/LNH₃ mg/LNO₂ mg/LNO₃ mg/LNote
122.67.06800.830.10.4system started; 12 fish stocked, feeding 40 g/day
822.86.97743.780.362.5
1622.76.8620.444.8114.2
2422.56.56440.030.0731.1
2522.46.52400.080.3631.8feed increased to 60 g/day
3022.56.43310.131.7833.4
3822.56.21190.254.1438.7
4522.56.180.326.1240.8
4622.96.21170.285.8443.2operator added carbonate buffer
53236.65500.182.8153.7
6022.97.06770.060.0965.1
synthetic dataSelected rows from the sixty-day log. The full file is linked below.

Download the full 60-day log (CSV)

Dry-year rainfall

A dry year for each site, derived from that site's Bureau of Meteorology monthly rainfall statistics by scaling each month toward a low decile and perturbing with a fixed seed. The driest four months are cut hardest.

What it is not: A historical drought. No year in these sites' records is reproduced here, and nothing in this dataset should be described as observed rainfall.

0230450mmJan: dry year 221.5 mm, long-record mean 432.1 mmJanFeb: dry year 196.7 mm, long-record mean 372.2 mmFebMar: dry year 201.8 mm, long-record mean 310.7 mmMarApr: dry year 54.9 mm, long-record mean 102.4 mmAprMay: dry year 12.6 mm, long-record mean 20.2 mmMayJun: dry year 0.4 mm, long-record mean 1.7 mmJunJul: dry year 0.3 mm, long-record mean 1.1 mmJulAug: dry year 1.7 mm, long-record mean 4.5 mmAugSep: dry year 5.1 mm, long-record mean 16.8 mmSepOct: dry year 41.8 mm, long-record mean 69.7 mmOctNov: dry year 78.5 mm, long-record mean 146.5 mmNovDec: dry year 156 mm, long-record mean 255.5 mmDecbars: dry year · ticks: long-record mean
synthetic dataDarwin: the synthetic dry year against the long-record monthly mean. The dry-season months are cut hardest, because that is where a storage design actually fails. Derived from Bureau of Meteorology station 014015 monthly statistics.
SiteBoM stationLong-record meanDry yearShare of meanFile
Canberra070014616 mm372 mm60 %CSV
Alice Springs015590284 mm168 mm59 %CSV
Brisbane0402141146 mm691 mm60 %CSV
Adelaide023000525 mm315 mm60 %CSV
Darwin0140151733 mm971 mm56 %CSV
synthetic dataAnnual totals, all five sites.

How to use it, and how not to

Reproducing these files

Both sets are generated deterministically from a fixed seed, so the same run produces the same files. The generator is research/model/make_datasets.py in this site's repository, and the climate statistics it derives from are the Bureau of Meteorology long-record monthly tables for each site's station.

You do not need the repository or Python to do it. The generator below is the same code running in this page, from the same station statistics. With the published seeds it writes the six files above and checks them against the published copies. Change a seed and you get a different dry year and a different log, which is a quick way to see whether a design only survives the one year printed here.