Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Import_OSM.groovy - Improving the NoiseModelling OSM Import WP… #720

Open
wants to merge 20 commits into
base: 4.X
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ jobs:
- name: Unzip production artifacts
run: cd wps_scripts && ./gradlew assembleDist && unzip build/distributions/scriptrunner.zip
- name: Archive production artifacts
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: NoiseModelling_without_gui.zip
path: wps_scripts/scriptrunner/
path: wps_scripts/scriptrunner/
54 changes: 54 additions & 0 deletions .github/workflows/static.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Simple workflow for deploying static content to GitHub Pages
name: Deploy NoiseModelling documentation as a static website

on:
# Runs on pushes targeting the default branch
push:
branches: [ "main" ]

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false


env:
MAIN_BRANCH: ${{ github.ref == 'refs/heads/main' }}

jobs:
# Single deploy job since we're just deploying
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: actions/setup-python@v5
- name: Install dependencies
run: |
pip install -r Docs/requirements.txt
- name: Sphinx build
run: |
sphinx-build -M html Docs/ Docs/build
- name: Setup Pages
uses: actions/configure-pages@v4
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
# Upload static site pages
path: 'Docs/build/html'
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
7 changes: 7 additions & 0 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,10 @@ sphinx:
formats:
- pdf
- htmlzip

# Optionally declare the Python requirements required to build your docs
python:
install:
- requirements: Docs/requirements.txt


2 changes: 1 addition & 1 deletion Docs/Input_railways.rst
Original file line number Diff line number Diff line change
Expand Up @@ -114,5 +114,5 @@ Table definition
* Type: Integer


.. _Rail_Train_SNCF_2021.json : https://github.com/Universite-Gustave-Eiffel/NoiseModelling/blob/4.X/noisemodelling-emission/src/main/resources/org/noise_planet/noisemodelling/emission/Rail_Train_SNCF_2021.json
.. _Rail_Train_SNCF_2021.json : https://github.com/Universite-Gustave-Eiffel/NoiseModelling/blob/4.X/noisemodelling-emission/src/main/resources/org/noise_planet/noisemodelling/emission/railway/RailwayCnossosSNCF_2021.json

14 changes: 7 additions & 7 deletions Docs/Matsim_Tutorial.rst
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ Here, for our use case, the MAtsim scenario and it's agents were generated by us
You can explore the other options by reading their descriptions. Here we are going to set them as follows:

- Network CSV file: ``/path/to/your/scenario_matsim/network.csv``
- Export additionnal traffic data ? : ``false``
- Export additionnal traffic data ? : ``true``
- Calculate All vehicles noise source ?: ``true``
- Path of the matsim output folder: ``/path/to/your/scenario_matsim``
- populationFactor: ``0.01``
Expand All @@ -87,7 +87,7 @@ You can explore the other options by reading their descriptions. Here we are goi
.. figure:: images/matsim/traffic_events_wps.png
:align: center

You should end up with a ``MATSIM_ROADS`` table containing the links ids and their geometry and a ``MATSIM_ROADS_STATS`` table containing the noise power level of each link per 15 min time slice.
You should end up with a ``MATSIM_ROADS`` table containing the links ids and their geometry and a ``MATSIM_ROADS_LW`` table containing the noise power level of each link per 15 min time slice.

.. figure:: images/matsim/roads_table.png
:align: center
Expand Down Expand Up @@ -214,20 +214,20 @@ We can see such a list for the receiver n°1 in the figure below:
Step 6 : Calculate Noise Maps
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

We have noise power levels every 15 minutes in the ``MATSIM_ROADS_STATS`` table, and a source-receiver noise attenuation matrix in the ``LDAY_GEOM`` table.
We have noise power levels every 15 minutes in the ``MATSIM_ROADS_LW`` table, and a source-receiver noise attenuation matrix in the ``LDAY_GEOM`` table.
We just need to combine the two to get receivers noise levels, noise maps, every 15 minutes.

This is the purpose of the ``Noise_From_Attenuation_Matrix`` WPS bloc.
We just have set the right tables as input as follows :

- Attenuation matrix table name: ``LDAY_GEOM``
- Output table name: ``RESULT_GEOM``
- Table name of the MATSIM table containing the roads LW stats per timeString: ``MATSIM_ROADS_STATS``
- Table name of the MATSIM table containing the roads LW stats per timeBin: ``MATSIM_ROADS_LW``
- Table name of the MATSIM table containing the roads geometries: ``MATSIM_ROADS``

.. figure:: images/matsim/noise_map_wps.png
:align: center

S
It takes some time but in the end you should get a noise spectrum for every receiver every 15 minutes in the table ``RESULT_GEOM``.

We have our noise maps !
Expand Down Expand Up @@ -267,12 +267,12 @@ Let's go into QGIS. We are going to import 2 layers : an osm background and our

You should see a lot of points all of the same color.

We now need to choose a timeslice we want to visualize, let's pick ``10h00_10h15``.
We now need to choose a timeslice we want to visualize, let's pick the timeBin of 10h (36000 seconds).
If you right click on the receivers layer and click on ``Filter...`` you should see the filter dialog.

To filter results for the 10h00_10h15 time period you can enter the following filter query :

``TIMESTRING = '10h00_10h15'``
``TIME = 36000``

The last step is to color the dots based on the LEQA field.
Here is my configuration :
Expand Down
4 changes: 4 additions & 0 deletions Docs/Scientific_production.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ Below is a non-exhaustive list of articles or presentations in which NoiseModell
Standard Noise maps
~~~~~~~~~~~~~~~~~~~~~~~~~

MONTENEGRO, Alexandra L., MELLUSO, Dulia, STASI, Gianmarco, et al. AN OPEN-SOURCE PIPELINE IN NOISE MODELLING AND NOISE EXPOSURE REDUCTION IN A PORT CITY, July 2024.

BACLET S., VENKATARAMAN S., RUMPLER R., BILLSJÖ R., HORVATH J., ÖSTERLUND P. E., , `From strategic noise maps to receiver-centric noise exposure sensitivity mapping <https://www.sciencedirect.com/science/article/pii/S1361920921004089>`_, Transportation Research Part D: Transport and Environment, 2022, vol. 102 *(Noise mapping, Road traffic noise, Population exposure, Road network sensitivity)*

GRAZIUSO G., FRANCAVILLA A. B., MANCINI S., GUARNACCIA C., `Open-source software tools for strategic noise mapping: a case study <https://iopscience.iop.org/article/10.1088/1742-6596/2162/1/012014>`_, Journal of Physics: Conference Series, 2022, vol. 2162, 012014
Expand All @@ -28,6 +30,8 @@ AUMOND P., FORTIN N., CAN A., `Overview of the NoiseModelling open-source softwa
Dynamic Noise maps
~~~~~~~~~~~~~~~~~~~~~~~~~

BACLET, Sacha, KHOSHKHAH, Kaveh, POURMORADNASSERI, Mozhgan, et al. Near-real-time dynamic noise mapping and exposure assessment using calibrated microscopic traffic simulations. Transportation Research Part D: Transport and Environment, 2023, vol. 124, p. 103922.

LE BESCOND V., CAN A., AUMOND P., GASTINEAU P., `Open-source modeling chain for the dynamic assessment of road traffic noise exposure <https://www.sciencedirect.com/science/article/pii/S1361920921000973>`_, Transportation Research Part D: Transport and Environment, 2021, vol. 94, 102793 (Watch a `short presentation <https://youtu.be/jNCG0qQrsrE>`_ on Youtube)

CAN A., AUMOND P., BECARIE, C., LECLERCQ, L., `Dynamic approach for the study of the spatial impact of road traffic noise at peak hours <https://pub.dega-akustik.de/ICA2019/data/articles/000646.pdf>`_, Proceedings of the 23rd International Congress on Acoustics, Aachen, Allemagne, 09-13 September, 2019
Expand Down
52 changes: 18 additions & 34 deletions Docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,18 +39,28 @@
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
"sphinx.ext.duration",
'sphinx.ext.autodoc',
"sphinx.ext.doctest",
'sphinx.ext.intersphinx',
'sphinx.ext.todo',
'sphinx.ext.coverage',
'sphinx.ext.mathjax',
'sphinx.ext.viewcode',
'sphinx.ext.githubpages',
'sphinx.ext.autosectionlabel'
'sphinx.ext.autosectionlabel',
'sphinx_rtd_theme',
]

# Add any paths that contain templates here, relative to this directory.
templates_path = []

intersphinx_mapping = {
"rtd": ("https://docs.readthedocs.io/en/stable/", None),
"python": ("https://docs.python.org/3/", None),
"sphinx": ("https://www.sphinx-doc.org/en/master/", None),
}
intersphinx_disabled_domains = ["std"]

templates_path = ["_templates"]

# The suffix(es) of source filenames.
# You can specify multiple suffix as a list of string:
Expand All @@ -66,12 +76,12 @@
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
language = None
language = 'en'

# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path .
exclude_patterns = []
# This pattern also affects html_static_path and html_extra_path.
exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"]

# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
Expand All @@ -86,29 +96,13 @@
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
html_theme = 'sphinx_rtd_theme'
html_theme = "sphinx_rtd_theme"

# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
#
# html_theme_options = {}

# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = []

# Custom sidebar templates, must be a dictionary that maps document names
# to template names.
#
# The default sidebars (for documents that don't match any pattern) are
# defined by theme itself. Builtin themes are using these templates by
# default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
# 'searchbox.html']``.
#
# html_sidebars = {}

html_static_path = ["_static"]

# -- Options for HTMLHelp output ---------------------------------------------

Expand Down Expand Up @@ -166,15 +160,5 @@
'Miscellaneous'),
]


# -- Extension configuration -------------------------------------------------

# -- Options for intersphinx extension ---------------------------------------

# Example configuration for intersphinx: refer to the Python standard library.
intersphinx_mapping = {'https://docs.python.org/': None}

# -- Options for todo extension ----------------------------------------------

# If true, `todo` and `todoList` produce output, else they produce nothing.
todo_include_todos = True
58 changes: 58 additions & 0 deletions Docs/requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
#
# This file is autogenerated by pip-compile with python 3.10
# To update, run:
#
# pip-compile docs/requirements.in
#
alabaster==0.7.12
# via sphinx
babel==2.10.3
# via sphinx
certifi==2022.6.15
# via requests
charset-normalizer==2.1.0
# via requests
docutils==0.17.1
# via
# sphinx
# sphinx-rtd-theme
idna==3.3
# via requests
imagesize==1.4.1
# via sphinx
jinja2==3.1.2
# via sphinx
markupsafe==2.1.1
# via jinja2
packaging==21.3
# via sphinx
pygments==2.12.0
# via sphinx
pyparsing==3.0.9
# via packaging
pytz==2022.1
# via babel
requests==2.28.1
# via sphinx
snowballstemmer==2.2.0
# via sphinx
sphinx==5.0.2
# via
# -r docs/requirements.in
# sphinx-rtd-theme
sphinx-rtd-theme==1.0.0
# via -r docs/requirements.in
sphinxcontrib-applehelp==1.0.2
# via sphinx
sphinxcontrib-devhelp==1.0.2
# via sphinx
sphinxcontrib-htmlhelp==2.0.0
# via sphinx
sphinxcontrib-jsmath==1.0.1
# via sphinx
sphinxcontrib-qthelp==1.0.3
# via sphinx
sphinxcontrib-serializinghtml==1.1.5
# via sphinx
urllib3==1.26.9
# via requests
Loading