Skip to content

Commit 7b09767

Browse files
committed
Updating README with CWZ references
1 parent 68dc1f4 commit 7b09767

File tree

2 files changed

+54
-18
lines changed

2 files changed

+54
-18
lines changed

README.md

Lines changed: 54 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# Work_Zone
22

3-
This is an open source, proof of concept solution for translating work zone data in the form of CDOT Planned Events, iCone device, and NavJOY 568 form data to the standardized [WZDx 4.2 format](https://github.com/usdot-jpo-ode/wzdx/tree/release/v4.2). This project was developed for CDOT. A unique translator has been developed for each of these message types. These translators read in the source message, parse out specific fields, and generate a WZDx message. For more information on these message formats and the data mappings between these messages and the WZDx format, see the [documentation](wzdx/docs). sample_files are located [here](wzdx/sample_files). All these translators are built to run from the command line and from GCP Dataflows, hosted within the CDOT RTDH WZDX environment. These translators are used to generate the CDOT Production WZDx data feed, which is published on the USDOT [WZDx Data Exchange Feed Registry](https://datahub.transportation.gov/Roadways-and-Bridges/Work-Zone-Data-Exchange-WZDx-Feed-Registry/69qe-yiui/data_preview)
3+
This is an open source, proof of concept solution for translating work zone data in the form of CDOT Planned Events, iCone device, and NavJOY 568 form data to the standardized [CWZ 1.0 format](wzdx/docs/508_CWZ_Standard_draft_v01_00_FINAL_Revised.pdf) as well as the [WZDx 4.2 format](https://github.com/usdot-jpo-ode/wzdx/tree/release/v4.2). This project was developed for CDOT. A unique translator has been developed for each of these message types. These translators read in the source message, parse out specific fields, and generate a CWZ/WZDx message. For more information on these message formats and the data mappings between these messages and the included formats, see the [documentation](wzdx/docs). sample_files are located [here](wzdx/sample_files). All these translators are built to run from the command line and from GCP Dataflows, hosted within the CDOT RTDH environment. These translators are used to generate the CDOT Production CWZ and WZDx data feeds, which are published on the USDOT [WZDx Data Exchange Feed Registry](https://datahub.transportation.gov/Roadways-and-Bridges/Work-Zone-Data-Exchange-WZDx-Feed-Registry/69qe-yiui/data_preview)
44

5-
The Google CloudPlatform deployment for the CDOT Planned Event WZDx translator is outlined below:
5+
The Google CloudPlatform deployment for the CDOT Planned Event WZDx translators are outlined below. The CWZ translator functions in a similar manner, but is not shown here.
66
![GCP Planned Events](wzdx/docs/CDOT%20WZDx%20translators%20-%20Planned%20Events.png)
77

88
On top of these translators, combination scripts have been written to integrate WZDx messages from multiple separate sources, including CDOT Planned Events, iCone, and NavJOY. Each of these sources has unique data fields that are not present in the other sources, and the combination script is designed to merge these fields into a single WZDx message. The combination script is also built to run from the command line and from GCP Dataflows, hosted within the CDOT RTDH environment. The combination script is designed to run after the individual translators have generated their WZDx messages, and the output of the combination script is a single WZDx message that contains all of the data from the individual sources. When fields from multiple sources overlap, the combination script is designed to prioritize the data from the source with the most complete information. Geotab data is also integrated for mobile work zones, so that when a vehicle is detected in a "planned-moving-area" work zone, the work zone is changed to a "moving" work zone, using the current location of the vehicle plus a buffer distance ahead.
@@ -24,17 +24,17 @@ The build package tar.gz file will be located in the dist folder.
2424

2525
## Running the Translators Locally
2626

27-
This set of WZDx message translators is set up to be implemented in GCP with App Engines and Dataflows. It is also set up with raw, standard, and enhanced (WZDx) data feeds. This means that to take a raw icone document and generate a WZDx message, the raw icone xml document must first be converted to 1 or multiple standard json messages (based on CDOT RTDH specification), and then each standard message may be converted into a single WZDx message. At this point, this data can be combined with other WZDx messages, through the [combination scripts](wzdx/experimental_combination/)
27+
This set of CWZ and WZDx message translators is set up to be implemented in GCP with App Engines and Dataflows. It is also set up with raw, standard, and enhanced data feeds. This means that to take a raw icone document and generate a CWZ or WZDx message, the raw icone xml document must first be converted to 1 or multiple standard json messages (based on CDOT RTDH specification), and then each standard message may be converted into a single enhanced message. At this point, this data can be combined with other CWZ/WZDx messages, through the [combination scripts](wzdx/experimental_combination/)
2828

2929
### Prerequisites
3030

3131
Requires:
3232

33-
- Python 3.8 (or higher)
33+
- Python 3.12 (or higher)
3434

3535
### Environment Setup
3636

37-
This code requires Python 3.8 or a higher version. If you haven’t already, download Python and pip. You can install the required packages by running the following command:
37+
This code requires Python 3.12 or a higher version. If you haven’t already, download Python and pip. You can install the required packages by running the following command:
3838

3939
```
4040
pip install -r requirements.txt
@@ -46,13 +46,13 @@ Please set up the following environment variable for your local computer before
4646

4747
Runtime Environment Variables:
4848

49-
| Name | Value | Description |
50-
| :--------------------------- | :------------------------------------------------------------------------------------------------------: | ---------------------------------------------------: |
51-
| contact_name | Heather Pickering-Hilgers | name of WZDx feed contact |
52-
| contact_email | heather.pickeringhilgers@state.co.us | email of WZDx feed contact |
53-
| publisher | CDOT | name of the organization issuing the WZDx feed |
54-
| CDOT_GEOSPATIAL_API_BASE_URL | https://dtdapps.colorado.gov/server/rest/services/LRS/Routes_withDEC/MapServer/exts/CdotLrsAccessRounded | GIS server endpoint used for geospatial api |
55-
| NAMESPACE_UUID | 00000000-0000-0000-0000-000000000000 | UUID used to pseudo-randomly tag all UUIDs generated |
49+
| Name | Value | Description |
50+
| :--------------------------- | :---------------------------------------------------------------------------------------------------: | ---------------------------------------------------: |
51+
| contact_name | Heather Pickering-Hilgers | name of WZDx feed contact |
52+
| contact_email | heather.pickeringhilgers@state.co.us | email of WZDx feed contact |
53+
| publisher | CDOT | name of the organization issuing the WZDx feed |
54+
| CDOT_GEOSPATIAL_API_BASE_URL | https://dtdapps.codot.gov/server/rest/services/LRS/Routes_withDEC/MapServer/exts/CdotLrsAccessRounded | GIS server endpoint used for geospatial api |
55+
| NAMESPACE_UUID | 00000000-0000-0000-0000-000000000000 | UUID used to pseudo-randomly tag all UUIDs generated |
5656

5757
Example usage:
5858
for mac computer run the following script to initialize the environment variable:
@@ -73,16 +73,28 @@ Example usage:
7373
python -m wzdx.raw_to_standard.planned_events 'wzdx/sample_files/raw/planned_events/I70_resurfacing_2024_11_07.json'
7474
```
7575

76+
#### Standard to CWZ Conversion
77+
78+
```
79+
python -m wzdx.standard_to_cwz.{standard translator} inputfile.json --outputFile outputfile.geojson
80+
```
81+
82+
Example usage:
83+
84+
```
85+
python -m wzdx.standard_to_cwz.planned_events_translator 'wzdx/sample_files/standard/planned_events/standard_planned_event_OpenTMS-Event20643308360_westbound.json'
86+
```
87+
7688
#### Standard to WZDx Conversion
7789

7890
```
79-
python -m wzdx.standard_to_enhanced.{standard translator} inputfile.json --outputFile outputfile.geojson
91+
python -m wzdx.standard_to_wzdx.{standard translator} inputfile.json --outputFile outputfile.geojson
8092
```
8193

8294
Example usage:
8395

8496
```
85-
python -m wzdx.standard_to_enhanced.planned_events_translator 'wzdx/sample_files/standard/planned_events/standard_planned_event_OpenTMS-Event20643308360_westbound.json'
97+
python -m wzdx.standard_to_wzdx.planned_events_translator 'wzdx/sample_files/standard/planned_events/standard_planned_event_OpenTMS-Event20643308360_westbound.json'
8698
```
8799

88100
### Execution for iCone translator
@@ -99,16 +111,28 @@ Example usage:
99111
python -m wzdx.raw_to_standard.icone 'wzdx/sample_files/raw/icone/icone_ftp_20241107-235100.xml'
100112
```
101113

114+
#### Standard to CWZ Conversion
115+
116+
```
117+
python -m wzdx.standard_to_cwz.icone_translator inputfile.json --outputFile outputfile.geojson
118+
```
119+
120+
Example usage:
121+
122+
```
123+
python -m wzdx.standard_to_cwz.icone_translator 'wzdx/sample_files/standard/icone/standard_icone_U13632784_20241107235100_1731023924_unknown.json'
124+
```
125+
102126
#### Standard to WZDx Conversion
103127

104128
```
105-
python -m wzdx.standard_to_enhanced.icone_translator inputfile.json --outputFile outputfile.geojson
129+
python -m wzdx.standard_to_wzdx.icone_translator inputfile.json --outputFile outputfile.geojson
106130
```
107131

108132
Example usage:
109133

110134
```
111-
python -m wzdx.standard_to_enhanced.icone_translator 'wzdx/sample_files/standard/icone/standard_icone_U13632784_20241107235100_1731023924_unknown.json'
135+
python -m wzdx.standard_to_wzdx.icone_translator 'wzdx/sample_files/standard/icone/standard_icone_U13632784_20241107235100_1731023924_unknown.json'
112136
```
113137

114138
### Execution for NavJoy 568 translator
@@ -129,16 +153,28 @@ Example usage:
129153
python -m wzdx.raw_to_standard.navjoy_568 'wzdx/sample_files/raw/navjoy/direction_test_2.json'
130154
```
131155

156+
#### Standard to CWZ Conversion
157+
158+
```
159+
python -m wzdx.standard_to_cwz.navjoy_translator inputfile.json --outputFile outputfile.geojson
160+
```
161+
162+
Example usage:
163+
164+
```
165+
python -m wzdx.standard_to_cwz.navjoy_translator 'wzdx/sample_files/standard/navjoy/standard_568_Form568-cb0fdaf0-c27a-4bef-aabd-442615dfb2d6_1638373455_westbound.json'
166+
```
167+
132168
#### Standard to WZDx Conversion
133169

134170
```
135-
python -m wzdx.standard_to_enhanced.navjoy_translator inputfile.json --outputFile outputfile.geojson
171+
python -m wzdx.standard_to_wzdx.navjoy_translator inputfile.json --outputFile outputfile.geojson
136172
```
137173

138174
Example usage:
139175

140176
```
141-
python -m wzdx.standard_to_enhanced.navjoy_translator 'wzdx/sample_files/standard/navjoy/standard_568_Form568-cb0fdaf0-c27a-4bef-aabd-442615dfb2d6_1638373455_westbound.json'
177+
python -m wzdx.standard_to_wzdx.navjoy_translator 'wzdx/sample_files/standard/navjoy/standard_568_Form568-cb0fdaf0-c27a-4bef-aabd-442615dfb2d6_1638373455_westbound.json'
142178
```
143179

144180
### Combine WZDx Messages
2.83 MB
Binary file not shown.

0 commit comments

Comments
 (0)