Road Asset Inventory

Blog·

Mapping parking bay types from aerial imagery for a GIS layer

Most agencies find their parking inventory the hard way: a complaint about a missing ADA bay, a meter vendor asking for bay counts that don't match the last GIS export, a council member wanting to know how many loading zones got added downtown since the last count. If you're building that layer from scratch, overhead imagery gets you most of the way there faster than a crew with a wheel and a clipboard.

What imagery shows you

Bay geometry and striping pattern are the easy part. At sub-0.5 m resolution you can trace the paint: parallel bays along a curb line, perpendicular bays in a lot-style on-street layout, echelon (angled) bays, and the hatched buffer zones next to ADA bays. Curb paint color reads clearly too, red for no-parking, yellow for loading, sometimes green for time-limited zones depending on your local convention. Wheel stops, bay length, and the gap between bays (useful for flagging where a bay was striped short of standard) all show up in VHR RGB captures without anyone leaving the office.

Pavement condition around the bay, faded striping that needs a repaint, and whether a marked bay actually has a working meter head or sign post nearby also show up, the meter itself is a small enough object that it's borderline depending on GSD, but the pole shadow and base usually confirm it's there.

What doesn't show up is the regulation behind the paint. A blue-hatched ADA bay is visually unambiguous. A plain white-striped bay that's permit-only on weekdays and open parking on weekends looks identical from above to one with no restriction at all. Overhead imagery tells you a bay exists and roughly what type of paint scheme it carries. It doesn't read the sign that says "2-hour limit, 8am-6pm, permit exempt." That still has to come from your sign inventory or ordinance database, joined to the bay feature after the fact.

Building the layer so it's useful, not just pretty

A parking bay layer that only has geometry and a generic "parking" tag doesn't do much for the register. The fields worth carrying per bay, based on what imagery supports:

  • Bay type by paint scheme: standard, ADA/accessible, loading, time-limited (by curb color), no-parking buffer
  • Orientation: parallel, perpendicular, echelon
  • Bay count per block face, with the segment ID or LRS station range it sits on
  • Striping condition: present and legible, faded, absent (curb line only, no paint)
  • Linked street segment, so the bay rolls up into the same carriageway/footway hierarchy as the rest of your asset register

That last point matters more than it looks. A parking bay inventory that lives as its own disconnected shapefile ends up orphaned the first time someone resurfaces a block and the striping plan changes. Tying bays to the same segment reference you already use for pavement and markings means one resurvey cycle updates everything downstream, not just the carriageway layer.

The classification work itself, the part where someone (or something) looks at a block face and decides "this one's ADA, this one's loading, this one's standard parallel," is exactly the kind of pattern-matching that's slow by hand and consistent when automated against the same imagery you're already using for your marking inventory. If you're running a carriageway and marking extraction off VHR imagery anyway, a parking bay classification pass off the same capture set adds the layer without a second procurement or a second crew.

Where to still send someone out

Sign regulation, meter functionality, and enforcement hours won't come off the overhead capture no matter how fine the GSD. Budget a lighter-touch field pass, or a cross-reference against your existing sign and meter asset data, to fill in the regulatory attributes once the geometry and bay-type layer exists. The imagery pass is what gets the register populated and current between those field efforts, not a replacement for the sign crew entirely.

For most counties, that split works out well: imagery handles the biennial refresh of geometry and paint type across the whole network, and the regulatory attributes only need touching when an ordinance changes. Keep your parking layer tied to that cadence and it stops drifting from what's on the ground.

Start a pilot