Using the data
Ten minutes here saves a week of guessing at column names. The formats are deliberately dull: UTF-8 CSV, ISO dates, one row per measurement, no merged cells anywhere.
Fetching files
Every dataset is a static file under /data/. Direct download needs no token, no header, nothing:
curl -O p.meldris.xyz/data/monthly-bridge-counts.csv
If you build on top of the portal, fetch the yearly dump instead and cache it; it changes at most once a month, and its checksum is quoted on the datasets page whenever it is rebuilt.
Schemas
monthly-bridge-counts.csv — month,site,mode,daily_avg,caption. month is the first of the month, site one of weir, foundry, oldmill; mode is bike or foot; daily_avg is the corrected daily average for days the counter ran.
air-quality-2025.csv — month,station,pm25_ugm3,pm10_ugm3,no2_ugm3,valid_days. Stations central, riverside, northfield, depot and, from September, school-street. Values are monthly means over valid_days; a month with under 20 valid days ships with an empty value rather than a guess.
library-lending.csv — year,branch,collection,loans,renewals. Collections adult and children; branches as named by the library service.
Correction flags
When a counter is recalibrated we append corrected rows rather than editing the old ones. Corrected rows carry a caption beginning with revised: and a note of what changed, for example:
2025-03-01,weir,bike,612.4,revised: rain under-count, see note R-14
Figures without a revised caption are as first published. This policy exists because a correction that overwrites history also overwrites everyone's charts.
Worked examples
Average the cycling series by year with standard tools alone:
curl -s -O p.meldris.xyz/data/monthly-bridge-counts.csv
python3 - <<'PY'
import csv
from collections import defaultdict
rows = list(csv.DictReader(open('monthly-bridge-counts.csv')))
sums = defaultdict(list)
for r in rows:
if r['mode'] == 'bike':
sums[r['month'][:4]].append(float(r['daily_avg']))
for y in sorted(sums):
print(y, round(sum(sums[y]) / len(sums[y]), 1))
PY
Spreadsheets work too: open any CSV directly, or point Power BI / LibreOffice at the dump. The numbers survive round-trips because the formats are boring.
Licence
All datasets are published under CC BY 4.0. Attribute “City of Ravensholm open data portal” and link the dataset you used; after that, everything from homework to commercial dashboards is fine without asking. The licence text ships inside the yearly dump, and the plain-language summary above is not a substitute for it.
Questions that the schema does not answer go to data@p.meldris.xyz — a human reads that inbox on weekdays.