A common human and machine-readable format for sharing routable, multi-modal road network data for transportation modeling.
GMNS (General Modeling Network Specification) is an open data specification that defines a common format for sharing routable road network files used in transportation planning and operations models. It solves the problem of incompatible network data formats across different modeling tools by providing a standardized, machine-readable structure that supports multi-modal and multi-resolution analysis. The specification describes network elements like nodes, links, lanes, and movements, along with their attributes and relationships.
Transportation planners, modelers, researchers, and software developers working on static or dynamic traffic simulation, network assignment, and multi-modal transportation analysis who need to exchange road network data between different tools and models.
Developers and organizations choose GMNS because it is a vendor-neutral, extensible standard that promotes interoperability without locking users into specific software. Its flexibility allows detailed representation for dynamic microsimulation while remaining simple enough for macroscopic models, and it integrates with existing standards like GTFS for transit data.
General Modeling Network Specification
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
GMNS is implementation-agnostic, stored as JSON-described files like CSV or databases, enabling data sharing across different transportation modeling tools without software lock-in, as emphasized in the philosophy.
Supports from macro static models with just nodes and links to detailed micro simulations with optional lanes, movements, and time-of-day tables, allowing tailored detail levels per the specification table.
Only nodes and links are required; user-defined fields and extensions like segments and TOD files can be added, providing adaptability without enforcing a rigid universal model.
Links to GTFS for transit data via the gtfs_stop_id field, leveraging an established standard instead of reinventing the wheel, as recommended in the transit approach section.
Attributes are inherited from parent to child elements (e.g., links to segments), which can lead to confusion and errors if not meticulously managed, as acknowledged in the inheritance relationships.
Fields like node_type have no standardized values, relying on external references like OpenStreetMap, potentially causing interoperability issues if users adopt different conventions.
The lanes field on links may not match the lanes table entries, creating ambiguity, especially for static vs. dynamic models, as highlighted in the 'Difference between Lane Field and Lanes Table' section.
While basic Python and R tools are provided for conversion and validation, the ecosystem for robust integration with major modeling software is still under development, requiring custom implementation efforts.