Environment QC clean AI-training-safe

Global City Air Quality

Daily air-quality readings across 10 pollutants (PM2.5, PM10, PM1, NO2, NO, NOx, O3, SO2, CO, black carbon) for ~227 major world cities' reference stations, 2021-2026 - cleaned from OpenAQ's station→sensor→measurement API into one tidy long Parquet. The assembling (per-station sensor alignment) is the tedious part.

1.1M
rows
233
zones
2021-2026
coverage
7.5 MB
download
Source
OpenAQ
Licence
Redistributable open data
Updates
Daily
Data through
2026-07-27
Quality
QC clean · 0 failures
Format
Apache Parquet + dictionary

Safe to train on

Built only from a named, redistributable official source under a documented open licence - not scraped web data. No copyright grey zone, no personal data. Ships machine-readable Croissant metadata (ML Commons - loads in Hugging Face / Kaggle / Google), an AI training-licence manifest documenting source, licence and provenance for your model's data governance, and a machine-readable data dictionary (drop it into an agent / RAG prompt so the model knows every column) - all inspectable before you buy.

What's included

  • Daily readings across 10 pollutants (PM2.5/PM10/PM1/NO2/NO/NOx/O3/SO2/CO/black carbon), ~227 major cities, 2021-2026
  • One representative reference station per city; tidy long format
  • city × pollutant × day; flat + partitioned by city
  • Source: OpenAQ (CC-BY-4.0) - health, ESG/proptech, insurance, smart-city use

Schema

ColumnTypeDescriptionFilledDistinct
zone str City 100.0% 233
ts timestamp (UTC) Day 100.0% 2,028
pollutant str Pollutant (PM2.5, NO2, O3, …) 100.0% 10
value float Daily mean concentration 100.0% 3,087
unit str Unit (µg/m³ or ppm) 100.0% 3
res_min int Cadence in minutes (daily) 100.0% 1

Sample & preview

Every purchase ships as Apache Parquet with a data dictionary and the full QC report. A free sample (first rows + schema) is downloadable here - confirm fit before you buy. Source: OpenAQ (redistributable open data; attribution passes through - see our Licence).

Don't trust screenshots - drop the sample into your notebook right now.

import pandas as pd
df = pd.read_parquet("global-city-air-quality_sample.parquet")
df.info()   # typed columns, gap-aware, ready to join
⬇ Download free Parquet sample or CSV for Excel
Coverage: 233 zones

Abidjan · Abu_Dhabi · Accra · Addis_Ababa · Adelaide · Ahmedabad · Algiers · Almaty · Amman · Amsterdam · Ankara · Antwerp · Astana · Athens · Atlanta · Auckland · Austin · Baku · Bandung · Bangalore · Bangkok · Barcelona · Basel · Beijing · Beirut · Belgrade · Berlin · Bilbao · Bogota · Boston · Bratislava · Bremen · Brisbane · Bristol · Brno · Brussels · Bucharest · Budapest · Buenos_Aires · Busan · Cairo · Calgary · Cali · Cape_Town · Cardiff · Chengdu · Chennai · Chicago · Chongqing · Cleveland · Cluj-Napoca · Cologne · Colombo · Copenhagen · Cork · Daegu · Dakar · Dalian · Dallas · Davao · Delhi · Denver · Detroit · Dhaka · Dresden · Dubai · Dublin · Durban · Dusseldorf · Edinburgh · Edmonton · Eindhoven · Faisalabad · Florence · Frankfurt · Gdansk · Geneva · Genoa · Ghent · Glasgow · Gothenburg · Guadalajara · Guangzhou · Guatemala_City · Guayaquil · Hamburg · Hanoi · Harare · Helsinki · Ho_Chi_Minh_City · Hong_Kong · Hyderabad · Incheon · Indore · Islamabad · Istanbul · Izmir · Jaipur · Jakarta · Jeddah · Johannesburg · Kampala · Kanpur · Karachi · Kathmandu · Katowice · Khartoum · Kigali · Kolkata · Krakow · Kuala_Lumpur · Kuwait_City · Kyoto · Lagos · Lahore · Las_Vegas · Leeds · Leipzig · Liege · Lisbon · Liverpool · Ljubljana · Lodz · London · Los_Angeles · Lucknow · Lusaka · Lyon · Madrid · Malaga · Malmo · Manama · Manchester · Manila · Maputo · Marrakesh · Marseille · Medan · Medellin · Melbourne · Mexico_City · Miami · Milan · Minneapolis · Monterrey · Montreal · Mumbai · Munich · Muscat · Nagoya · Nagpur · Nairobi · Nanjing · Nantes · Naples · New_York · Nice · Nuremberg · Osaka · Oslo · Ottawa · Palermo · Paris · Patna · Perth · Philadelphia · Phnom_Penh · Phoenix · Pittsburgh · Portland · Porto · Poznan · Prague · Pretoria · Pune · Qingdao · Quito · Reykjavik · Riga · Rio_de_Janeiro · Riyadh · Rome · Rotterdam · Sacramento · Salt_Lake_City · San_Diego · San_Francisco · San_Jose · Santiago · Sao_Paulo · Sapporo · Seattle · Seoul · Seville · Shanghai · Shenyang · Shenzhen · Singapore · Sofia · Split · St._Louis · Stockholm · Stuttgart · Surat · Sydney · Taipei · Tallinn · Tashkent · The_Hague · Thessaloniki · Timisoara · Tokyo · Toronto · Toulouse · Turin · Utrecht · Valencia · Vancouver · Varna · Vienna · Vilnius · Washington · Winnipeg · Wroclaw · Wuhan · Xian · Yangon · Yerevan · Yokohama · Zagreb · Zaragoza · Zhengzhou · Zurich