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:

    ParkingZoneIDSupportIDSignIDSignCode
    1234-abc-xyz1234zcxvRPP
    1234-abc-xyz3465asdfRPP
    1234-abc-xyz7890qewrRPP

    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 CodeErrorTypeDescriptionErrorLevelOutput to...
Zone_


SignworksLnErrors
Zone_ParkingZoneConflictZoneWhen one permissive parking zone overlaps a restriction zoneErrorSignworksLnErrors
Zone_ArrowDirectionIssueZone

When a parking zone is expecting a middle sign with bi-directional arrow but instead has a right/left.

WarningSignworksLnErrors
Zone_ParkingPermittedatCapZoneIf a parking zone begins or ends as a 'cap', then this is likely an error.WarningSignworksLnErrors
Zone_TimebandMismatchZone

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.

ErrorSignworksLnErrors
Sign_MPHSignDetected a signtype that requires an MPH value but none was presentErrorSignworksPtErrors
Sign_ArrowSignDetected a signtype that requires an arrow value but none was presentErrorSignworksPtErrors
Sign_DaySignDetected a signtype that requires a day but none was presentErrorSignworksPtErrors
Sign_TimeSignDetected a signtype that requires a time but none was presentErrorSignworksPtErrors
Sign_ZoneSignDetected a signtype that requires a Ward/ANC but none was presentErrorSignworksPtErrors

*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'

Diagram