Skip to content

Software & tools

Eliot edited this page Sep 26, 2023 · 38 revisions

Data production & quality 📊

Editing /Management & visualization tools

Tool Name Availability Description Profile License URL
Nplan Available Java backend / TypeScript frontend for create/edit/export of NeTEx data (Support both Timetable based and On-demand polygon based services) Nordic EUPL Backend: https://github.com/entur/uttu Frontend: https://github.com/entur/enki
NSR Available Java backend / JavaScript frontend for import/creation/edit/export for NeTEx stops data. (Act as a National Stops Register for the whole of Norway) Nordic EUPL Backend: https://github.com/entur/tiamat Frontend: https://github.com/entur/abzu
Chouette Available Java backend / Ruby frontend for import/validation/edit/export of NeTEx data. Highly modified version of the old AFIMB version of Chouette. NOTE: Legacy software not recommended for new implementations Nordic CeCIL -B Backend: https://github.com/entur/chouette Frontend: https://github.com/entur/chouette2

Data validation tool

Tool Name Description Profile Repository URL
Greenlight - The Data4PT Validation tool Validating NeTEx data. All https://github.com/ITxPT/DATA4PTTools
NeTEx validator java Validation library for NeTEx data, analyzing and reporting schema compliance. Nordic https://github.com/entur/netex-validator-java
Antu Validate NeTEx datasets against the Nordic NeTEx Profile. Nordic https://github.com/entur/antu

Mapping & conversion 🛠️

Conversion of NeTEx between other formats

When it comes to converting NeTEx data to other formats or vice versa, various tools are available to assist in this process. These tools facilitate the transformation of public transport data between different standards and formats. Here are some notable mapping and conversion tools for NeTEx data:

Tool Name Description Profile GitHub Repository
netex-protobuf netex-protobuf is a converter designed to transform NeTEx data into the Protobuf format. Suitable for various NeTEx profiles. netex-protobuf on GitHub
gtfs2netexfr gtfs2netexfr is a specialized tool for exporting GTFS (General Transit Feed Specification) data into NeTEx format, with a focus on the French profile. French NeTEx profile. gtfs2netexfr on GitHub
hastus Giro Hastus OIG script to export NeTEx from a system, in addition can export crew operations. Dutch and Nordic NeTEx profiles. hastus on GitHub
Chimera Chimera is a framework for semantic data transformation pipelines. A converter between GTFS and NeTEx has been implemented adopting an intermediate Transmodel representation. Nordic (ready), EPIP/Italian (ongoing). Chimera on GitHub
Damu Converts NeTEX datasets into GTFS datasets using by the Netex-to-GTFS converter library. Nordic https://github.com/entur/damu
NeTEx to GTFS converter Java Library used to convert NeTEx-Nordic Profile into GTFS datasets. Nordic https://github.com/entur/netex-gtfs-converter-java

Canonical Mapping

For developers looking to achieve enhanced interoperability and seamless integration of shared mobility data feeds, the NeTEx Mapping Solution is a useful resource. Developed through collaboration between the EU-funded DATA4PT project and MobilityData experts, this solution plays a pivotal role in the evolving landscape of the NeTEx standard: https://data4pt.org/w/images/5/5b/Canonical_mapping_-_NeTEx_and_SIRI_new_modes_with_GBFS.pdf

Others 🧰

Name of the Tool Description URL
OpenTripPlanner Timetable and shortest path journey planner supporting reading various input formats including GTFS and NeTEx. https://github.com/entur/OpenTripPlanner

Building code from NeTEx XSD

C# code #️⃣

It is possible to create C# classes in different ways.

There are many tools out there, but for instance, you could use the Microsoft xsd.exe tool or the mganss/XMLSchemaClassGenerator tool available on Github at https://github.com/mganss/XmlSchemaClassGenerator.

Currently there are some issues if you try to use the official NeTEx XSD as a starting point with either of these tools.

However, the above-mentioned tools work fine if you use them together with an adapted set of XSD-files available from Data4PT. The file set is designed to be compatible with the official NeTEx XSD and to cover many important use cases. It does however not cover all use cases possible with the official schema. There is an interactive graphical presentation of the adapted and reduced XSD available at https://data4pt.org/NeTEx/GraphicKit/Documention_of_reduced_XSD.html.

If you wish to try out this reduced XSD, you can download it at https://data4pt.org/NeTEx/GraphicKit/XSD_reduced.zip.

Using the Microsoft tool

  1. Get the zipped XSD.
  2. Extract the ZIP to a folder.
  3. Make sure that you have a recent version of the xsd.exe. It is part of the .NET Framework Developer Pack and can be downloaded from https://dotnet.microsoft.com/download/dotnet-framework.
  4. Install the developer pack. The xsd.exe will be placed in a folder with a path similar to C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools.
  5. Open a command prompt in the same folder as where the NeTEx_publication_reduced-NoConstraint.xsd resides.
  6. Execute the following command (you may have to adapt the path to xsd.exe):

Using the MGANSS tool

  1. Get the zipped XSD.
  2. Extract the ZIP to a folder.
  3. Download and extract the binary from https://github.com/mganss/XmlSchemaClassGenerator/releases to a separate folder, e.g., C:\MGANSS.
  4. Open a command prompt in the same folder as where the NeTEx_publication_reduced-NoConstraint.xsd resides.
  5. Execute the following command (you may have to adapt the path to the exe):

C:\MGANSS\XmlSchemaClassGenerator.Console.exe NeTEx_publication_reduced-NoConstraint.xsd -n http://www.opengis.net/gml/3.2=gml-v

Java code ☕️

When working with NeTEx data in Java, you can generate Java classes from NeTEx XSD using various tools and libraries. This section will introduce you to the tools and libraries available for Java development with NeTEx.

Tool Name Description GitHub Repository
netex-java-model The netex-java-model is a Java library that provides NeTEx XML bindings for Java, including additional support for mapping temporal types to native Java objects. https://github.com/entur/netex-java-model
netex-parser-java The netex-parser-java is a Java library designed for parsing NeTEx files and providing the ability to lookup entities within an index. https://github.com/entur/netex-parser-java

Please refer to the respective GitHub repositories for detailed documentation, usage examples, and installation instructions for these Java libraries.

Python code 🐍