Nodus is a transportation network modeling software especially designed for multimodal and intermodal freight transport. It is developed at the Center for Operations Research and Econometrics (CORE) of the Université catholique de Louvain (UCLouvain, Belgium). The software is developed and maintained mainly by Pr Bart Jourquin.
Beside this GitHib Pages website, the Nodus binaries and sources can be downloaded from GitHub.
Nodus (Screenshots) implements the "Virtual networks" methodology developed at UCLouvain, an alternative to the classical "four steps" technique to model multimodal and intermodal transport flows over networks, as it combines the "modal choice" and "assignment" phases of the latter in a single step.
This methodology has already led to numerous policy-oriented studies on large scale multimodal freight transport networks, such as:
- Regional freight transport planning
- Cost benefit analysis for transport infrastructure
- Optimal locations for intermodal terminals
- Impact of climate change on inland waterways transport
- Internalization of external costs and its potential impact on modal choice
- Estimation of market areas of container hubs
- ...
Numerous scientific articles have been written in which Nodus was used. Most of these papers, along with contributions to congresses and seminars can be found on Research Gate.
- Compatible with GIS standards: shape files and web mapping, using OpenMap.
- Parallelized algorithms: able to handle very large networks.
- Multi-plaform: Linux-Mac-Windows.
- Open API: available through scripting (using the Groovy language, Python through a Py4J bridge or R through a J4R bridge) or plugins (in Java jar files).
- JDBC: compatible with most DBMS’s. Shipped with HSQLDB, H2 and Apache Derby.
- Flexible: user defined database fields, variables, cost functions, mode choice models…
See also the documentation and the Demo project.
- 7.0 - November 2017: First open source version of Nodus.
- 7.1 - November 2018: Upgrade to Groovy 2.5.x.
- 7.2 - February 2020: Upgrade to Groovy 3.x.
- 8.0 - February 2021: Introduce time functions (in addition to cost functions). Simplified API for modal-choice plugins. Many under the hood improvements.
- 8.1 - April 2021: Runs on Java 16 and allows Python scripting through a Py4J bridge and R scripting through a J4R bridge in addition to Groovy.
- 8.2 - February 2022: Runs on Java 17, but now needs Java 11 or above to run. Runs HSQLDB, H2 and Derby in server mode to allow for external connections. Upgrade to Groovy 4.
See the change log for a detailed build history.
Download the Nodus installer. As the software is written in the Java programming language, the latest must be installed on your computer. Since version 8.2, Nodus needs Java 11 or later. Depending on your system, either (double) click on "Nodus8-install.jar" or run "java -jar Nodus8-install.jar" from your shell console.
Once installed, Nodus can be launched using
- "nodus8.sh" on Linux
- "Nodus8.app" or "nodus8.sh" on macOS
- "Nodus 8" shortcut or "nodus8.bat" on Windows
The software has a modern and integrated user-friendly GUI. Complete reference and user guides are not available, but the API is fully documented. A documented sample Nodus project can be found in the "demo" directory.
Note for macOS users: recent releases of macOS (Catalina and later) introduce more access control to disks. If you want to use Nodus projects that are stored in "special" folders, such as the Desktop for instance, full disk access must be granted to the /bin/sh shell at the OS level (add entry in Preferences > Security & Privacy > Privacy > Full Disk Access).
Nodus is written in Java. Therefore, it uses the memory allocation system provided by the Java Virtual Machine (JVM). In particular, the maximum memory allocated to the software must be defined by the user if the default values are not appropriate. This can be set using the -Xms and -Xmx command line parameters passed to the JVM. Please refer to the JVM documentation for a detailed information on these switches.
By default, Nodus uses the following strategy:
- If the physical memory of the computer it runs on is at most 4Go large, no -Xms (minimum heap) value is set. Otherwise it is set to 2Go.
- The maximum heap that can be claimed for (-Xmx) is set to 50% of the physical memory, with a maximum of 6Go.
- If Nodus runs on a 32bits JVM (not recommended), -Xmx is limited to 1.4Gb and -Xms is not set.
These values are stored in "jvmargs.sh" or "jvmargs.bat", a file created in the installation directory by Nodus at launch time if it doesn't exist yet. This file can be edited if other values (or even other JVM parameters) are desired.
You can redistribute it and/or modify Nodus 8.x under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
The Nodus distribution can be built from the sources. Therefore, you need a Java Development Kit (JDK version 11) or above. You also need Apache Ant. Be sure JAVA_HOME points to your JDK and that ant is in your OS path.
Once the GitHib Nodus sources fetched, open a terminal and go to the root of the project. Type:
ant Installer
This will compile the project, generate the JavaDoc for the API and bundle all what is needed into the installer jar file.
It is also possible to only compile the main nodus8.jar using:
ant Jar
This can be useful for instance when some bugs have been fixed in the source tree or some new enhancements have been introduced without any change in the used external libraries.
You can also import Nodus as an Eclipse project.
The Checkstyle and SpotBugs plugins are used in Eclipse in order to write code that adheres to the Google Java coding standard and to look for bugs in Java code.
The software doesn't modify the "registry" of any supported OS (Mac OS, Linux or Windows). Just delete the installation directory to remove the software from your system.
You can also delete the small ".nodus8.properties" file that is located at the root of your "home" dir.
Jourquin, Bart. (2022) Nodus, the Transportation Network Modeling Software Designed for Multimodal and Intermodal Freight Transport. http://nodus.uclouvain.be. DOI 10.5281/zenodo.3634540.