Urban Noise Mapping

Urbica Summer Internship programme has started in the beginning of the summer ’17. Internship team included cartographer, analyst, engineer and ecologist with two mentors from Urbica.

Purpose of the internship was not only to make a noise map for Moscow, but also to create a methodology for noise mapping anywhere in the world with similar data and tools. Of course, we didn’t realise, how hard it was going to be and what problems we would face.

Urban noise map

We began with creating our hypothesis and studying fellow scientists ideas. For example, Swiss software developer Lucas Martinelli suggested a very simple idea on how to map noise for any city in the world several years ago. Assuming that noise level is decreasing with increasing distance from noise source, he made a buffer zones with three noise levels based on OpenStreetMap’s “noisy” tags. Whilst this idea allows to create a noise map with ease, it does not consider changing of noise pollution factors in different cities. That is why we decided to make our map more actual. Our first step was to include building density factor as a variable in buffer radius calculation.

In addition, we created a technology to improve our model precision. For that purpose we needed a noise level meter, but professional ones are very expensive and could cost slightly less than 40000 roubles ( approx. 700$) that was way too high for our tight budget that’s why we tried to make by ourselves noise level meter with satisfying characteristics but less cost. With knowledge of noise level and distance between the meter and noise source, we were able to calculate noise level at source point.

Since there are many noise generation factors (transport, people, construction sites, etc.) we became curious if we could not only measure noise level but define kind of noise pollution source. We found inspiration for this idea in SONYC (Sound Of NYC) project which took place in New York City few years ago.

We decided that we need to be able to recognize only 4 kinds of noise pollution sources strongly differential to each other: construction sites, automobile roads, railroads and places of people congestion. For classifier’s learning process we used Google AudioSet and a part of SONYC data. It was hard to make training set out of Google AudioSet because huge amount of records from it contained a lot of silence, human speech or even wrong noise kinds. Though, SONYC records quality was too good making recognition of our poorly recorded samples way too difficult.

For the first try we used cheap and simple Arduino board to make noise level meter but quality of records was low despite acceptable noise level indication. That is the reason why for second attempt we proceeded with OrangePi platform that has better performance but bigger energy consumption comparing to the Arduino. So, choosing between two platforms we decided to stick with OrangePi for better recording quality with reasonable cost and battery capacity increase.

Urban noise sensor we developed

Another reason for OrangePi usage — it is more convenient because of standard build-in SD-card slot and Wi-Fi adapter. It is possible to connect to microcontroller via Wi-Fi in the Arduino case but some modifications have to be made and some parts be bought. Moreover, OrangePi is complete PC with different OS options, such as Ubuntu or Android. We used Armbian — composition of different Linux components.

For more accurate measurements we determined key features of noise level meter and methodology based on the Russian ISO analog — ГОСТ 53187–2008 on where and how it must be placed. According to the standard, measurements must be done at a certain height within a certain distance from objects nearby. We asked ‘Velobike’ company (Moscow bicycle share sys) to allow us to mount our noise sensors on their bike sharing stations.

With permission granted, measurements were done and we began to update model accordingly. After several iterations optimal map improving process configuration was found.

We achieved our goals by the end of Summer Internship programme: methodology of measurement and recognition had been completed and tested in real conditions as well as our noise level meter and all of our results were put in the open source. It will help fellow enthusiasts in noise mapping without same troubles that we had in our process. And here is our result (not final, we are still working on it) — noise map of Moscow made with our methodology.

Another usage of that map — Walkstreets mobile app, which uses graph enriched with city noise data. Walkstreets allows users to find the most comfortable routes to get somewhere or simply to walk around.

Our achievements were presented at the High School of Economics urban planners facility “ShukhovLab” and first ever Russian Cities Climat Forum. During both events we received feedback from specialists and other interested.

All of our code and project components were uploaded to the GitHub. We would like to point out that it’s not the final version, major improvements are still to be done. So stay tuned and we appreciate any suggestions on project’s improvement and development.


  • Gregory Belyaev, ecologist
  • Artem Saakyan, engineer
  • Andrew Aslanov, analyst
  • Tatyana Ivannikova, cartographer


  • Sergey Gorbatyuk, lead data analyst
  • Anastasia Konovalova, project manager

Noise map — https://urbica.github.io/noisemap/

Project’s GitHub (Russian, use Google translate, sorry for that) — https://github.com/urbica/noisemap