This repository contains data specifications intended to harmonize sharing of information about transportation events and infrastructure between infrastructure owner operators and the public. The specifications here were initially created under the Work Zone Data Exchange project.
- Data Feeds
- Repository Organization
- Project Description
- Contact Information
- Release Notes
- Getting Started
- JSON Schemas
- Contributions
- Versioning
- License
TDx defines the structure and content of multiple distinct data feeds. Each feed is distributed as a single GeoJSON file and is represented by both human-friendly documentation in the spec-content directory and a JSON Schema in /schemas. Each feed is designed for a specific use case.
Feed Name | Description | Producer | Consumer | Uses | Content |
---|---|---|---|---|---|
RoadIncidentFeed |
Provides information about incidents or events that close or restrict the use of a road segment. | Transportation Authorities like Tribal, Local, State, or Federal Agencies. | Traveling public via third parties such as mapping companies and CAVs. | Increased awareness; Route planning; Driver, Passenger, and Road-User Safety. | Incident and detour road events (see IncidentRoadEvent and DetourRoadEvent). |
RoadRestrictionFeed |
Provides information about sections of roadways that have restrictions. Restriction types described by this specification are listed in the RestrictionType enumerated type. | Transportation Authorities like Tribal, Local, State, or Federal Agencies. | Traveling public via third parties such as mapping companies and CAVs. | Increased awareness; Route planning; Driver, Passenger, and Road-User Safety; Increased Efficiency; Reduced Damage to Infrastructure. | Restriction road events (see RestrictionRoadEvent). |
The TDx Specification repository contains several files and subdirectories.
- examples: example GeoJSON documents from TDx data feeds. examples/README.md describes the content of this directory in detail.
- images: the images that are referenced by other Markdown files in the repository.
- schemas: contains JSON Schemas for each of the feeds defined by TDx for feed validation.
- spec-content: details the data content of the TDx specification, including objects, property names and types, and enumerated types. spec-content/README.md describes the content of this directory in detail.
- Creating_a_TDx_Feed.md: information to assist in creating a TDx data feed, such as the feed format, business rules, and validation tools.
- LICENSE: the Creative Commons Zero v1.0 Universal license that the repository is licensed under.
- README.md (this document): information about the TDx effort and navigating the repository.
- RELEASES.md: detailed information about every release of the TDx specification.
What is the TDx Specification? The Transportation Data Exchange (TDx) Specification enables infrastructure owners and operators (IOOs) to make harmonized transportation data available for third-party use. The intent is to make travel safer and more efficient through ubiquitous access to data on hazards like road restrictions.
How was TDx started? The TDx Road Restriction Feed was created as an extension of the Work Zone Data Exchange (WZDx) model. WZDx created a specification for communicating work zone and detour information using GeoJSON files and features called "road events." The Road Restriction Feed extended that model to communicate sections of roadway that feature permanent height, weight, or other restrictions.
How can I get help with implementation? Review Creating_a_TDx_Feed.md which contains information to assist in creating a TDx data feed, such as the feed format, business rules, and validation tools.
This project repository will be continually updated with resources to help with implementation - in the meantime, please make a new GitHub discussion if you need help implementing the TDx Specification or have questions.
Contact Name: ITS JPO
Contact Information: avdx@dot.gov
Released February 2023
- Define the RoadIncidentFeed and IncidentRoadEvent to enable providing a feed of crashes, natural disasters, special events, and weather.
- Add
vehicle_impact
property to the RestrictionRoadEvent - Incorporate changes made to the Work Zone Data Exchange (WZDx) Specification versions 4.1 and 4.2 adding new functionality to objects and enumerated types:
- Recommend using Universally Unique Identifiers (UUID) for the
id
property of the RoadEventFeature and FeedDataSource, noting that a UUID may be required in the next major release. - Add
name
property to RoadEventCoreDetails to allow providing a human-friendly name for a road event. - Add a
related_road_events
property (and new supporting object RelatedRoadEvent and enumerated type RelatedRoadEventType) to the RoadEventCoreDetails to allow explicitly defining relationships/connections between road events; this replaces the Relationship object concept. - Add the following values to the Direction enumerated type:
inner-loop
,outer-loop
,undefined
, andunknown
. - Add
no-passing
to the RestrictionType enumerated type. - Add
two-way-center-turn-lane
to the LaneType enumerated type to replace the existingcenter-left-turn-lane
with a more generic value.
- Recommend using Universally Unique Identifiers (UUID) for the
- Incorporate changes made to the WZDx Specification deprecating objects, properties, and enumerated type values utilized in this specification:
- Deprecate the
relationship
property on the RoadEventCoreDetails; use the newrelated_road_events
property instead. - Deprecate the
center-left-turn-lane
value in the LaneType enumerated type; use the newtwo-way-center-turn-lane
instead.
- Deprecate the
- Incorporate changes made to WZDx Specification cleaning up objects and values utilized in this specification:
- Expand the description of the
geometry
property on the RoadEventFeature object to clarify how geometry should be used to represent a road event. - Update the description of the
open
andclosed
enumerations of the LaneStatus enumerated type.
- Expand the description of the
Feedback and comments on the TDx v1.0 Specification are welcome. Comments can be made by posting a GitHub Issue or Discussion, while suggested changes can be made using a Pull Request.
- Learn about using GitHub as a tool for collaboration and support.
- Use the Specification Content page to understand the data components of the specification.
- Validate your feed output using the respective JSON Schema.
- Publish your feed and tell us about it via avdx@dot.gov.
The TDx Specification defines a JSON schema for each feed within the schemas directory. Schemas can be used to validate a TDx feed document for compliance to the specification. The repository contains schemas for the following feeds:
How do I contribute to the TDx Specification?
- Report bugs and request features via GitHub Issues.
- Ask the TDx community for input on a question or propose an idea you have via GitHub Discussions.
- Create a GitHub Pull Request that implements new functionality or fixes a bug.
- Review and provide feedback on update issues/discussions/pull requests created by other users.
- Alternatively, email us with any questions.
- Help us improve our best practices and formatting on GitHub.
The WZDx and TDx specifications use a major.minor versioning scheme, similar to SemVer. The rules are as follows:
- The minor version number must be incremented if new, backwards compatible fields/entities/enumerations are introduced or if any existing fields/entities/enumerations are marked as deprecated.
- The major version number must be incremented if any backwards incompatible changes are introduced.
- Neither version number shall be incremented for documentation changes/clarifications that have no effect on either the specification schema or the content or structure of a GeoJSON feed file which conforms to the specification.
To view available versions, refer to the tags section of this repository.
The TDx project is in the worldwide public domain (i.e., in the public domain within the United States - copyright and related rights in the work worldwide are waived through the CC0 1.0 Universal public domain dedication). All contributions to this project will be released under the CC0 dedication. By submitting a pull request, you are agreeing to comply with the waiver of copyright interest. see License for more details.