kanarche
Kanarche mascot: a samurai canary

About Kanarche

A free, open map of the air in Bulgaria. Most readings come from sensors that volunteers run at home. The official stations of the Executive Environment Agency are shown alongside them.

What this project is

Free

No account, no paywall, no adverts. Every page works without signing in.

Open source

The code is on GitHub under the MIT licence.

Community driven

The citizen readings come from sensor.community volunteers. Anyone can report a problem or send a fix.

No personal data

No cookies, no analytics scripts, no accounts. We keep no IP address or identifier. Cloudflare, which delivers the site, does see your IP address, as any such network does.

Made for phones

Panels and charts are laid out for a small screen and work with a thumb.

Accessible

Every control shows a clear focus ring, and the sensors in view can be opened from a keyboard list. Each colour comes with its band name. We aim for WCAG 2.2 AA.

What we are trying to do

  1. Show the air where you areReadings by neighbourhood, not one number for a whole city.
  2. Be honest about what a number meansCoverage and caveats sit next to each figure. Low-cost sensors are indicative. They are not reference instruments.
  3. Make the data easy to reuseEvery area has a page you can link to, and the map can be embedded on other sites.

Getting started

A short tour of what the map can do, grouped by what you want to do. Skim the headings or read it from the top.

Read the map

  1. Choose what the map shows

    Open Layers to switch things on or off. Citizen sensors, official stations, wind and province outlines are on at first. Pollen, bathing water, inactive stations and faulty stations stay off until you ask for them.

    The Layers menu open on the map, with the scale, cell values, citizen sensors, official stations, wind, pollen, bathing water, province outlines, inactive stations and faulty stations as checkboxes. The Layers menu open on the map, with the scale, cell values, citizen sensors, official stations, wind, pollen, bathing water, province outlines, inactive stations and faulty stations as checkboxes.
  2. Switch between measurements

    Open the metric menu to choose PM2.5, PM10, temperature, humidity, pressure and, depending on the stations shown, gases and noise. Your choice stays in the link, so a shared link opens on the same measurement.

    The metric menu open on the map, listing PM2.5, PM10, temperature, humidity and the other measurements. The metric menu open on the map, listing PM2.5, PM10, temperature, humidity and the other measurements.
  3. Read the colours

    The Legend in the corner of the map unfolds into the colour key for the chosen measurement. Its "What the colours mean" link explains each band.

    The legend unfolded in the corner of the map, with the colour scale and the "What the colours mean" link. The legend unfolded in the corner of the map, with the colour scale and the "What the colours mean" link.
  4. Look at now, or average over time

    The map shows the latest readings, which citizen sensors send about every 5 minutes. Use the averaging period menu to see the average over the last 24 hours, 48 hours or week instead. An average is steadier, because one odd hour cannot swing it.

    The averaging period menu open on the map, with Now, Last 24 hours, Last 48 hours and Last week. The averaging period menu open on the map, with Now, Last 24 hours, Last 48 hours and Last week.
  5. Show silent and faulty stations

    A station is inactive when it has sent nothing for the chosen measurement in the last 2 hours, or 12 hours for official stations. It is faulty when at least half of its readings in the last 24 hours failed the quality checks, counting at least 6 readings. Both are hidden at first, because a map full of empty cells looks like an empty country and a faulty station has no usable value. Show them in Layers with "Inactive stations" and "Faulty stations".

    The Layers menu open on the map, with the "Inactive stations" and "Faulty stations" options ticked and the extra stations drawn on the map. The Layers menu open on the map, with the "Inactive stations" and "Faulty stations" options ticked and the extra stations drawn on the map.

Find your place

  1. Jump to a place

    Type a region, city, district or address in the search box. The map centres there, and an address gets a pin. Address search uses OpenStreetMap, where house numbers are patchy, so if nothing is found try the street name alone.

    The search box with suggestions for a city and its districts, and a pin on a searched address. The search box with suggestions for a city and its districts, and a pin on a searched address.
  2. Follow your town or district

    Each province, provincial capital and Sofia district has its own page. Find them under the Areas tab at the top, next to Map and About. A page shows the median, the coverage and the last 24 hours.

    The Plovdiv area page, with the current median, the number of sensors and the range over the last 24 hours. The Plovdiv area page, with the current median, the number of sensors and the range over the last 24 hours.
  3. Scroll for the full picture

    The arrows under the map lead to a second part of the page. There you find the median across provinces, the highest province figure, the provinces without data and a link to all areas.

    The bottom of the map with the down arrows, and below it the median across provinces and the highest province figure. The bottom of the map with the down arrows, and below it the median across provinces and the highest province figure.
  4. Use it comfortably on a phone

    On a phone the buttons are sized for a finger, and one tap gives the map the whole screen. A sensor opens in a panel at the bottom. Scroll down for the readouts and charts.

    Three phone screens: the map with its controls, a sensor panel open at the bottom, and the readouts and charts below the map. Three phone screens: the map with its controls, a sensor panel open at the bottom, and the readouts and charts below the map.

Move the map

  1. Tilt and turn the map

    The Orientation button on the map, a small compass, opens a panel with Tilt and Heading sliders and a Reset to north button. Tilt goes up to 60 degrees. You can also right-drag or Ctrl+drag, or use two fingers on touch. Tilted, each hexagon rises into a column as tall as its reading, so the worst spots stand out.

    The map tilted over Sofia with hexagons raised into columns by their reading, and the Orientation panel open with the Tilt and Heading sliders and the Reset to north button. The map tilted over Sofia with hexagons raised into columns by their reading, and the Orientation panel open with the Tilt and Heading sliders and the Reset to north button.
  2. Start from where you are

    Press Find me to centre the map near you. The first time, a small hint points to the button. The site remembers your last view, layers and period in your browser, and "Clear my settings" on this page forgets them.

    The Find me button in the corner of the map with the hint "See the air near you" beside it. The Find me button in the corner of the map with the hint "See the air near you" beside it.

Extra layers

  1. See the pollen forecast

    Switch on Pollen in Layers to colour the provinces by the forecast level for today and the next two days, then click a province to open its page. It is a model forecast, not a count.

    The map with the pollen layer on, provinces coloured from low to high, and the pollen forecast key in the corner. The map with the pollen layer on, provinces coloured from low to high, and the pollen forecast key in the corner.
  2. Check the bathing water

    Switch on Bathing water in Layers to see sea, lake and reservoir sites coloured by their EEA class, with E. coli and enterococci samples in the site panel. The class covers the last four seasons, so a single sample is context, not a verdict on the water today.

    The Black Sea coast with bathing water sites coloured by class, and a site panel listing E. coli and enterococci samples. The Black Sea coast with bathing water sites coloured by class, and a site panel listing E. coli and enterococci samples.
  3. Watch the wind

    Moving particles show where the wind blows and how hard. Wind is on at first, and you can switch it off in Layers. Wind disperses pollution, and still air holds it in place.

    The map with wind particles streaming across Bulgaria and the wind key in the corner. The map with wind particles streaming across Bulgaria and the wind key in the corner.
  4. See the official stations

    The government monitoring stations are shown beside the citizen sensors, and you can hide or show them in Layers. They also bring nitrogen dioxide, ozone, sulphur dioxide, carbon monoxide, benzene and noise. Their readings are older than citizen ones, so they count as inactive after 12 hours instead of 2.

    The map with official stations switched on and the metric menu showing the extra pollutants. The map with official stations switched on and the metric menu showing the extra pollutants.

Look back

  1. Replay the past day or week

    Press play to watch the map change over the last 24 hours, 48 hours or week. A day plays hour by hour, two days in two-hour steps and a week in six-hour steps. Pick a speed from a quarter to double, and use the back button to return to the current readings.

    The replay bar at the bottom of the map with the play button, the hour shown, the speed and the button back to the current readings. The replay bar at the bottom of the map with the play button, the hour shown, the speed and the button back to the current readings.
  2. Chart a sensor over time

    Click a sensor to open its panel with a chart. Choose 24 hours, 7 days, 30 days or 1 year, or set your own dates. Add the median, highest and lowest of the sensors nearby to see how yours compares.

    A sensor panel with a line chart, the period selector and the nearby sensors median and range. A sensor panel with a line chart, the period selector and the nearby sensors median and range.

Keep and share

  1. Keep one sensor close

    Choose "Save as my sensor" in the sensor panel and the map opens on it next time. It is stored only in your browser.

    A sensor panel with the "Save as my sensor" button. A sensor panel with the "Save as my sensor" button.
  2. Share what you see

    Open "More actions" in the sensor panel and choose Share. The link holds the sensor, the measurement and your choice of citizen and official stations. It does not hold the period or the map position.

    The "More actions" menu open in a sensor panel, with Share and Embed. The "More actions" menu open in a sensor panel, with Share and Embed.
  3. Put the map on your own site

    Copy one line of HTML to show the map on a school, municipal or news website. You can centre it on a province. There is nothing to install.

    The map embedded on another page, centred on Plovdiv Province. The map embedded on another page, centred on Plovdiv Province.
    <iframe src="https://kanarche.eu/embed?area=plovdiv-oblast"
            title="Kanarche" width="100%" height="480"
            loading="lazy" style="border:0"></iframe>

    Embedding guide

  4. Read the provinces as a table

    The Areas tab lists every province in a table. Filter by data, search by name and choose which columns to show.

    The Areas table with the filter, the search box and the Columns menu open above the list of provinces. The Areas table with the filter, the search box and the Columns menu open above the list of provinces.

Use it your way

  1. Use it with a keyboard or screen reader

    Press Tab on any page and "Skip to content" comes first. Every control shows a focus ring, also in Windows high contrast mode. Below the map, a list of the sensors in view opens each one in its sensor panel. Every value carries its band name, such as "good" or "fair", beside the colour. Each sensor chart has a text summary and a data table for screen readers. Report problems as GitHub issues.

    The list of sensors in view below the map, with a focus ring around one sensor. The list of sensors in view below the map, with a focus ring around one sensor.

Privacy

We keep no IP address or identifier: none in logs, none in the database. Your IP is used for a moment in memory to limit abusive traffic, then forgotten. Cloudflare, our network provider, sees it too and gives us only daily totals.

This site sets no cookies.

It keeps a few preferences in your browser's local storage. They stay on your device. The site keeps no copy.

Stored keyWhat it remembers
kanarche:themeYour chosen colour theme: auto, light, or dark.
kanarche:map-layersWhich map layers are switched on.
kanarche:legend-openWhether the map legend panel is open.
kanarche:play-speedYour chosen playback speed for the time-lapse.
kanarche:map-windowThe time window the map shows: live readings or an average over a longer period.
kanarche:auto-refreshHow often the map refreshes itself with new readings.
kanarche:map-viewWhere the home map was last centred and zoomed, so it reopens there.
kanarche:locate-hint-seenThat the tip pointing at the locate button was already shown.
kanarche:favourite-sensorThe sensor you starred, so the map opens on it.
kanarche:panel-foldedWhether the sensor panel on the map was folded.
kanarche:panel-heightThe height you dragged the sensor panel on the map to.

Removes only the keys listed above.

Visitors

How many people open the site each day. The numbers come from Cloudflare's traffic totals. We run no counter in your browser.

Daily unique visitors

Distinct IP addresses per day at Cloudflare. Some bots included.

Add a station near you

Want a sensor closer to you? airbg.info explains how to build or adopt a station.

Build it yourself

A sensor, a fan and a small board. The guide walks you through parts and setup.

Adopt a station

Host a ready-made station on your balcony or wall.

sensor.community map

Every sensor.community station worldwide, including ones not shown here.

Kanarche is an independent project. It is not affiliated with Sensor.Community or with airbg.info (Код България). See the Terms of use.

Get involved

Kanarche is open source and non-commercial. If you like it, a star on GitHub helps other people find it. Ideas for features and problem reports are welcome as GitHub issues.

Read more, or get involved

Back to the map