{ "annotations": { "list": [] }, "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 0, "id": null, "links": [], "panels": [ { "title": "Air Quality (PM2.5)", "type": "timeseries", "datasource": { "type": "influxdb", "uid": "influxdb-smartcity" }, "targets": [ { "query": "from(bucket:\"smartcity\") |> range(start: v.timeRangeStart, stop:v.timeRangeStop) |> filter(fn: (r) => r[\"_measurement\"] == \"airquality\") |> filter(fn: (r) => r[\"_field\"] == \"pm25_ugm3\") |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false) |> yield(name: \"mean\")" } ], "gridPos": { "h": 8, "w": 12, "x": 0, "y": 0 } }, { "title": "Traffic Flow (Vehicles)", "type": "timeseries", "datasource": { "type": "influxdb", "uid": "influxdb-smartcity" }, "targets": [ { "query": "from(bucket:\"smartcity\") |> range(start: v.timeRangeStart, stop:v.timeRangeStop) |> filter(fn: (r) => r[\"_measurement\"] == \"traffic\") |> filter(fn: (r) => r[\"_field\"] == \"vehicle_count\") |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false) |> yield(name: \"mean\")" } ], "gridPos": { "h": 8, "w": 12, "x": 12, "y": 0 } }, { "title": "Parking Occupancy (%)", "type": "timeseries", "datasource": { "type": "influxdb", "uid": "influxdb-smartcity" }, "targets": [ { "query": "from(bucket:\"smartcity\") |> range(start: v.timeRangeStart, stop:v.timeRangeStop) |> filter(fn: (r) => r[\"_measurement\"] == \"parking\") |> filter(fn: (r) => r[\"_field\"] == \"occupancy_percent\") |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false) |> yield(name: \"mean\")" } ], "gridPos": { "h": 8, "w": 12, "x": 0, "y": 8 } }, { "title": "Noise Levels (dB)", "type": "timeseries", "datasource": { "type": "influxdb", "uid": "influxdb-smartcity" }, "targets": [ { "query": "from(bucket:\"smartcity\") |> range(start: v.timeRangeStart, stop:v.timeRangeStop) |> filter(fn: (r) => r[\"_measurement\"] == \"noise\") |> filter(fn: (r) => r[\"_field\"] == \"noise_level_db\") |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false) |> yield(name: \"mean\")" } ], "gridPos": { "h": 8, "w": 12, "x": 12, "y": 8 } }, { "title": "Weather (Temperature \u00b0C)", "type": "timeseries", "datasource": { "type": "influxdb", "uid": "influxdb-smartcity" }, "targets": [ { "query": "from(bucket:\"smartcity\") |> range(start: v.timeRangeStart, stop:v.timeRangeStop) |> filter(fn: (r) => r[\"_measurement\"] == \"weather\") |> filter(fn: (r) => r[\"_field\"] == \"temperature_c\") |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false) |> yield(name: \"mean\")" } ], "gridPos": { "h": 8, "w": 12, "x": 0, "y": 16 } }, { "title": "Light Levels", "type": "timeseries", "datasource": { "type": "influxdb", "uid": "influxdb-smartcity" }, "targets": [ { "query": "from(bucket:\"smartcity\") |> range(start: v.timeRangeStart, stop:v.timeRangeStop) |> filter(fn: (r) => r[\"_measurement\"] == \"light\") |> filter(fn: (r) => r[\"_field\"] == \"luminosity\") |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false) |> yield(name: \"mean\")" } ], "gridPos": { "h": 8, "w": 12, "x": 12, "y": 16 } } ], "schemaVersion": 36, "style": "dark", "tags": [ "smartcity", "martinique", "iot" ], "templating": { "list": [] }, "time": { "from": "now-1h", "to": "now" }, "title": "Smart City Digital Twin - Martinique", "uid": "smartcity-martinique-v2", "version": 1 }