UTCI, PM2.5, NO2, LAeq noise, pedestrian arrivals, and reconstructed occupancy
Synthetic Smart City datasets for urban IoT research
The Smart City and Public Spaces reference engine models outdoor thermal conditions, air quality, environmental noise, pedestrian presence, and decision-layer outputs for a hypothetical public space.
Engine maturity
Reference Engine — Internally Verified
Documented reference implementation with a fixed data contract, reproducible generation, and internal validation. External empirical validation remains limited.
engine 4.5.0 · maturity reference · validation internally_verified
Research scope
The v4.5.0 reference boundary, preserved v4.4.0 artifacts, and external-comparison limits appear in the specification and the associated public research record.
Scenario controls and provenance artifacts for reference-environment reproduction
Column schema
Every record in this domain emits the same 64 columns in a normative order retained by the v4.5.0 CSV contract . Types and ranges below are read from the generator itself, so they cannot drift from the files it produces.
| Column | Type | Unit |
|---|---|---|
| timestamp | string iso8601 | — |
| step_duration_seconds | integer | s |
| day_type | enum | — |
| cloud_state | enum | — |
| cloud_fraction | float | dimensionless |
| precipitation_mm_h | float | mm/h |
| air_temperature_c | float | degC |
| vapour_pressure_pa | float | Pa |
| relative_humidity_pct | float | % |
| wind_speed_10m_m_s | float | m/s |
| wind_speed_pedestrian_m_s | float | m/s |
| mean_radiant_temperature_c | float | degC |
| crowd_state | enum | — |
| crowd_state_mechanism | enum | — |
| offered_arrivals_count | integer | persons |
| admitted_arrivals_count | integer | persons |
| rejected_arrivals_count | integer | persons |
| deferred_arrivals_count | integer | persons |
| deferred_timeout_count | integer | persons |
| queue_length_persons | integer | persons |
| occupancy_persons | integer | persons |
| operational_capacity_ratio | float | dimensionless |
| audience_general_public_persons | integer | persons |
| audience_families_persons | integer | persons |
| audience_elderly_persons | integer | persons |
| audience_students_persons | integer | persons |
| audience_commuters_persons | integer | persons |
| audience_event_attendees_persons | integer | persons |
| dominant_audience | enum | — |
| traffic_flow_vehicles_h | float | vehicles/h |
| pm25_emission_ug_s | float | ug/s |
| pm25_background_ug_m3 | float | ug/m3 |
| pm25_physical_ug_m3 | float | ug/m3 |
| pm25_sensor_raw_ug_m3 | float | ug/m3 |
| pm25_sensor_calibrated_ug_m3 | float | ug/m3 |
| pm25_rolling_24h_ug_m3 | float | ug/m3 |
| pm25_rolling_complete | boolean | — |
| no2_emission_ug_s | float | ug/s |
| no2_background_ug_m3 | float | ug/m3 |
| no2_physical_ug_m3 | float | ug/m3 |
| no2_sensor_raw_ug_m3 | float | ug/m3 |
| no2_sensor_calibrated_ug_m3 | float | ug/m3 |
| no2_rolling_24h_ug_m3 | float | ug/m3 |
| no2_rolling_complete | boolean | — |
| LAeq_15min_dBA | float | dB(A) |
| noise_window_complete | boolean | — |
| utci_c | float | degC |
| utci_stress_category | enum | — |
| utci_input_clamped | boolean | — |
| wbgt_outdoor_c | float | degC |
| thermal_risk_level | enum | — |
| air_quality_risk_level | enum | — |
| noise_risk_level | enum | — |
| crowding_risk_level | enum | — |
| overall_action_level | enum | — |
| dominant_issue | enum | — |
| co_dominant_issues | json array of enum | — |
| elevated_issues | json array of enum | — |
| elevated_hazard_count | integer | — |
| compound_risk_flag | boolean | — |
| risk_completeness_fraction | float | dimensionless |
| overall_action_level_provisional | boolean | — |
| risk_communication_template_id | string | — |
| risk_communication_message | string | — |
Generative models
Values come from explicit equations, not from a trained generative model. Each component below is documented in the methodology.
Solar geometry
iotsyn_solar_v1 - declination, hour angle and solar elevation drive the radiative terms.
Meteorology
AR(1) and Markov drivers for air temperature, wind and cloud state.
Thermal comfort
Section 7, v4.5.0 specUTCI operational polynomial over air temperature, mean radiant temperature, wind at 10 m and vapour pressure, domain-clamped.
Air quality
Single-box mass balance dC/dt = E/(H.A) - (u/Lx + k_dep + k_chem)(C - C_bg) for PM2.5 and NO2.
Presence
Non-homogeneous Poisson process arrivals with occupancy reconstruction.
Acoustics
Energy-sum aggregation to LAeq.
Risk layer
Compound thermal, air-quality, noise and crowding scores aggregated to an overall action level.
Randomness
Portable MT19937 with SHA-256 named-substream derivation from a decimal master_seed.
Research uses
The common thread is known ground truth: the generator records the true state alongside the observation of it, which a real deployment cannot supply.
Benchmarking sensor-reconstruction methods against known ground truth
Stress-testing multi-hazard alarm logic under declared observation error
Time-series forecasting with controllable scenario severity
Teaching urban environmental analysis without procurement or privacy barriers
Compared with measured datasets
Measured datasets in this area remain the reference for site realism. A generator answers a different question: what a method does when the true state is known and the scenario can be set deliberately. These are complements, not substitutes.
| Measured dataset | What it provides | What a generated record adds |
|---|---|---|
| CityPulse | Smart-city sensor streams from Aarhus. | Ground truth for the true state behind each reading, and scenario severity you can set. |
| Array of Things | Urban sensor nodes deployed across Chicago. | Arbitrary scenario counts without waiting for weather or events to occur. |
| UTD19 | Large multi-city urban traffic measurements. | Coupled thermal, air-quality, noise and presence channels in one record. |
Scope and limits
What the published evidence establishes
- — Implementation verification: the generator executes its stated model.
- — Byte-level reproducibility in the tested reference environment, from domain, parameters and seed.
- — Declared internal signatures hold across the reference scenarios.
What it does not establish
- — Site realism, or transfer to any specific real deployment.
- — Calibration against a named site, sensor network, fleet or population.
- — A held-out comparison with City of Melbourne observations met none of the predeclared diurnal-profile criteria across 30 seeds, and is reported as a negative result.
Browse Smart City generated records
Each card links to the original citable record. IoTSyn keeps that URL, its dataset file, and its citation guidance unchanged.
High-Traffic Scenario — Smart City & Public Spaces
1,000 rows · published Aug 24, 2026
Open original dataset record →Smart City & Public Spaces — Baseline
10,000 rows · published Aug 10, 2026
Open original dataset record →Smart City & Public Spaces — Baseline
1,000 rows · published Aug 10, 2026
Open original dataset record →Smart City & Public Spaces — Baseline
672 rows · published Aug 10, 2026
Open original dataset record →Smart City & Public Spaces — Baseline
672 rows · published Aug 10, 2026
Open original dataset record →Noisy Event — Smart City & Public Spaces
400 rows · published Aug 9, 2026
Open original dataset record →Smart City & Public Spaces — Baseline
1,000 rows · published Aug 9, 2026
Open original dataset record →Smart City & Public Spaces — Baseline
1,000 rows · published Aug 9, 2026
Open original dataset record →High-Pollution Day — Smart City & Public Spaces
300 rows · published Aug 8, 2026
Open original dataset record →Smart City & Public Spaces — Baseline
300 rows · published Aug 8, 2026
Open original dataset record →Low-Risk Control — Smart City & Public Spaces
1,000 rows · published Aug 8, 2026
Open original dataset record →High-Pollution Day — Smart City & Public Spaces
1,000 rows · published Aug 7, 2026
Open original dataset record →Frequently asked questions
Is this calibrated to a real city?
No. A held-out comparison with City of Melbourne observations met none of the predeclared diurnal-profile criteria for pedestrian-flow proxy, air temperature or PM2.5 across 30 seeds, and is reported as a negative result. The records represent a hypothetical public space, not a named site.
Can a published run be reproduced exactly?
Yes, within the tested reference environment. An identical domain, parameter set and master_seed reproduce byte-identical artifacts. Every record publishes its seed and engine version.
What licence applies to the data?
Generated datasets are released under CC0 1.0 public domain where the record's own metadata says so, which permits any use including commercial use, without attribution.
How many columns does a Smart City record contain?
64, in a normative column order retained by the v4.5.0 CSV contract.
What is the difference between physical truth and sensor observation here?
The generator keeps them separate. Physical truth, the sensor observation of it, and the decision derived from that observation are emitted as distinct columns, so a method can be scored against the truth it never sees.