Architecture

NoiseModelling is the name of the application that allows to calculate noise maps (notably through a Graphical User Interface). But did you know that it is also the name of different calculation libraries?

The documentation below presents the architecture of NoiseModelling with its different bricks and the ways to launch it:

  1. NoiseModelling libraries
  2. Database connection
  3. NoiseModelling with a Graphical User Interface (GUI)
  4. NoiseModelling with command line
  5. NoiseModelling with Docker
_images/architecture.png

1. NoiseModelling libraries

NoiseModelling is made of 4 main librairies:

  • noisemodelling-emission : to determine the noise emission
  • noisemodelling-pathfinder : to determine the noise path
  • noisemodelling-propagation : to calculate the noise propagation
  • noisemodelling-jdbc : to connect NoiseModelling to a database

These libraries may be used independently of each other. Note that the noisemodelling-jdbc library (JDBC = Java DataBase Connectivity) is central since it allows the three others to communicate with each other as soon as the data are stored in a database (which is the default situation).

2. Database connection

Thanks to the noisemodelling-jdbc library, NoiseModelling can access and communicate with databases. This system is quite adapted to store, manage and process (spatial) data. Here, the user has the choice between to database (free, open-source and powerful) couples:

In both cases, database can be local or remote.

3. NoiseModelling with a GUI

NoiseModelling has a Graphical User Interface (GUI). It is accessible through a web browser (here http://localhost:9580/geoserver/web/) and is generated by a module named “WPS Builder”.

In order for “WPS Builder” to communicate with the NoiseModelling libraries, we use a ‘bridge’ named GeoServer. This free and open-source software, allows (among other cool things) to execute WPS* scripts, written in Groovy language, via HTTP requests.

* Web Processing Service, which is a standard from the Open Geospatial Consortium (OGC).

Note

When launching NoiseModelling, Geoserver is started first. In your terminal, you will have a lot of log messages. Most of them are coming from Geoserver and are not directly linked to NoiseModelling. Unfortunately, we can not remove them.

You can see NoiseModelling with a GUI in action in the page “Get Started - GUI”.

4. NoiseModelling with command lines

You can use NoiseModelling with command lines. To do so,

  1. Open a terminal
  2. Go in the NoiseModelling directory
  3. Call the WPS .groovy script you want, with the needed arguments

Note

The .groovy script may be simple (the ones already provided with NoiseModelling, executing one task) or complex (tailor made by users and calling one or many .groovy script(s)).

Note

No need to launch / start the application as we do with Geoserver. Here the NoiseModelling libraries are called directly for each instructions.

Examples can be found in the page “Pilot NoiseModelling with scripts”.

5. Docker Setup

When a developer uses Docker, he creates an application or service, which he then bundles together with the associated dependencies in a container image. An image is a static representation of the application or service, its configuration and dependencies.

A docker image for the NoiseModelling v3.4.4 library has already been built by Tomáš Anda (Aka “tomasanda” - thanks to him!). Please visit his Github repository: https://github.com/tomasanda/docker-noisemodelling

Warning

This docker version is made with NoiseModelling v3.4.4 which is an old release. A news Docker version with the last NoiseModelling version may be made.