Parking Script Automation
Notes
- Sign QC tables:Â need two tables.Â
- SignworksPtErrors
- SignworksLnErrors
- Use same structure/format as ErrorCheckTable
New companion table for ParkingZone detail. Like this:
ParkingZoneID SupportID SignID SignCode 1234-abc-xyz 1234 zcxv RPP 1234-abc-xyz 3465 asdf RPP 1234-abc-xyz 7890 qewr RPP DONE
- On certain 'Exception' type signs (RPP,etc), we need a 'false timeband' to express the implied anytime parking zone allowed for Zone X residents.
- Let's discuss more before starting work on this.
- Add BlockFace to signpoints and signpoints_timebands
- DONE
- Publish BlockFace as layer in Signworks map services
- DONE
- Is there a way to perform analysis on a single block still?
- Forgot to ask - most likely, this would be something that could happen more dynamically.
- Fix ZoneErrorCheck.py
- Task for Osheen
Write zone-type errors to linear error table: SignworksLnErrorsÂ
- SharedStreets/CurbLR ETL
- Task for James
- 'Back-off' parking zones from ;intersection plate':Â NEW!
About
Output
Errors and Conflict Detection
The scripts operate on a concept of Begin-Middle-End for creating parking zones. Ascending from the block's beginning and on the first, left blockface, it opens upon the first signtype with a right-facing arrow. It then may encounter a mid-block bi-directional 'Middle' sign that shows the zone continuing. Eventually, it should encounter an ending sign which 'End' the zone for the signtype. Any deviation from this concept flags as an error and is saved to the validation table.
ErrorLevel:
- Error - this is a violation and must be corrected
- Warning - this might be a violation, but may not be. Need to check.
- Info - this is not a violation, but is unexpected.Â
Error Code | ErrorType | Description | ErrorLevel | Output to... |
---|---|---|---|---|
Zone_ | SignworksLnErrors | |||
Zone_ParkingZoneConflict | Zone | When one permissive parking zone overlaps a restriction zone | Error | SignworksLnErrors |
Zone_ArrowDirectionIssue | Zone | When a parking zone is expecting a middle sign with bi-directional arrow but instead has a right/left. | Warning | SignworksLnErrors |
Zone_ParkingPermittedatCap | Zone | If a parking zone begins or ends as a 'cap', then this is likely an error. | Warning | SignworksLnErrors |
Zone_TimebandMismatch | Zone | If a parking zone (two signs match with converging/continuing arrows), has one or more signs with a unique or non-matching timeband then this is a mismatch error. | Error | SignworksLnErrors |
Sign_MPH | Sign | Detected a signtype that requires an MPH value but none was present | Error | SignworksPtErrors |
Sign_Arrow | Sign | Detected a signtype that requires an arrow value but none was present | Error | SignworksPtErrors |
Sign_Day | Sign | Detected a signtype that requires a day but none was present | Error | SignworksPtErrors |
Sign_Time | Sign | Detected a signtype that requires a time but none was present | Error | SignworksPtErrors |
Sign_Zone | Sign | Detected a signtype that requires a Ward/ANC but none was present | Error | SignworksPtErrors |
*Cap: Typically describes the beginning cap or corner of a street block. But this ultimately describes the beginning or ending of a blockface. Generally, this is an area that is zoned as no parking 'to the end of the block'