Geospatial Solutions
SAM production workflow

GIS-ready pavement marking data, from frame to schema.

This is not generic labeling. Reviewers choose the best frame, geolocate every point against satellite context, classify stripings and markings, rate condition, and hand off cleaned geometry that production GIS teams can actually use.

414

sample frames

Video task frame count used for production proof.

1.5

sample miles

Corridor length tracked in the task report.

2.67

hours per mile

Observed task progress for the sample workflow.

509

delivery features

Records in the local final SAM production sample.

Start/endSAM-1042
Lane line gap striping annotation source frame
start point
end point
source framePolyline

Active workflow proof

Lane stripings get two points

Linear stripings are labeled at the beginning and end of the feature so the GIS team can build continuous LineString geometry later.

Production progress from SAM workflow video

Production progress

The video shows frames, miles, completion status, and hours per mile tracked in a task report.

Label taxonomy setup from SAM workflow video

Label taxonomy setup

The task constructor includes dozens of SAM striping and marking classes before review begins.

Image plus map review from SAM workflow video

Image plus map review

Reviewers work with street-level imagery and a synchronized satellite map to place assets precisely.

Workflow control

GIS QA position

Active QA decision

Lane line gap

Accepted

Confidence

99.1%

Accuracy gate

>98% spatial QA

Geometry

Polyline

Category

Longitudinal

Issue

Broken centerline segment needed line continuity review.

Action

Reviewer snapped vertices, verified direction, and marked export ready.

Schema

marking_type, condition, side, direction, review_flag

Production queue

Click to sync

98%+

accuracy target

Structured review before delivery.

95%+

IAA target

Peer agreement on label consistency.

<2%

rejection target

Lead QA threshold before sign-off.

24h

rework window

Flagged items return to review quickly.

Who feels the bottleneck

Collection is finished. The delivery risk starts when extraction falls behind.

Mapping companies, mobile-mapping primes, AEC teams, and infrastructure data groups need production capacity that can absorb surge volume, clean the GIS layer, and deliver in the schema their client expects.

VP Field Operations

Collection is done, but data is not ready fast enough.

Director of Data Operations

Production backlog, inconsistent output, and staffing pressure.

QA/QC Manager

Accuracy, false positives, false negatives, and reviewer consistency.

GIS Manager

Deliverables need cleanup before they are usable.

ML Lead

Model performance depends on better training and evaluation data.

COO / VP Ops

Cost, quality, and turnaround pressure at scale.

QA and delivery system

Tight QA, then GIS cleanup, then delivery.

The operating model is not just "review labels." It is a staged QA lane with rework, escalation, schema checks, and final GIS packaging.

01

Ingest field collection

02

CVAT geolocation

03

Class and condition

04

QGIS linework

05

Schema delivery

Stage 1

CVAT checklist

Annotator self-check

Each annotator checks geometry, label taxonomy, condition, and required fields before submission.

Stage 2

95%+ IAA

Peer review

A second reviewer checks label accuracy, consistency, edge cases, false positives, and false negatives.

Stage 3

<2% rejection

Lead QA review

QA lead reviews flagged items, validates acceptance criteria, and confirms schema readiness.

Stage 4

Pilot sign-off

Client sample review

New taxonomies can include a client review loop before production batches are signed off.

QA rules we can defend

Human review before export, with second-pass checks on edge cases.
False positive and false negative queues are separated from production edits.
Required schema fields must be complete before a record is marked deliverable.
Geometry cleanup includes snapping, direction, lane association, and attribution.
Spatial and vertical accuracy targets are tracked against project requirements.

Schema-ready output

The extraction layer can be delivered as FileGDB, shapefile, GeoJSON, CSV, PostGIS load, or the client schema from the bid. Required attributes, lane references, source frame, condition, direction, and reviewer notes can all be enforced before export.

FileGDB / Shapefile

GeoJSON / PostGIS

QA notes

Training data

What the SAM source material proves

The task is visible, measurable, and already production-shaped.

The source folders include the SAM training brief, sample images, the full workflow video, and a final GeoJSON production sample. This page now surfaces that evidence without forcing a 367 MB video into the first load.

Roadway asset inventory

GIS-ready SAM data supports this downstream use case with class, condition, geometry, and traceability intact.

Pavement marking condition

GIS-ready SAM data supports this downstream use case with class, condition, geometry, and traceability intact.

Traffic safety analysis

GIS-ready SAM data supports this downstream use case with class, condition, geometry, and traceability intact.

Mobility planning

GIS-ready SAM data supports this downstream use case with class, condition, geometry, and traceability intact.

Digital twin mapping

GIS-ready SAM data supports this downstream use case with class, condition, geometry, and traceability intact.

ML training data

GIS-ready SAM data supports this downstream use case with class, condition, geometry, and traceability intact.

Final production examples

The handoff is a named GIS package, not a vague export.

The latest examples include a combined SAM production sample, QGIS project files, conversion scripts, styling, and pilot outputs. The important part is the production lane from CVAT points to usable GIS geometry.

509

features in Final_SAM_Production_sample.geojson

327

striping records

181

marking records

12

top classes surfaced in the sample

Inspect local GeoJSON sample

Top classes in the production sample

solid_whitedotted_whitedashed_whitecrosswalk_contword_onlybus_lanestop_linebike_lane_doubledouble_yellowword_busparking_stallbike_lane_arrow

Final_SAM_Production_sample.geojson

Combined production sample

MAPBOX.qgz

QGIS / Mapbox project handoff

scan_0919_BEVERLY_MA.qgz

Beverly QGIS project

cvat_xml_to_geojson_gss.py

CVAT conversion script

SAM_label_view_FIXED.qml

QGIS label styling

Geojson Converted.zip

Converted delivery package

FINAL SAM PRODUCTION SAMPLECombined production sample

Final_SAM_Production_sample.geojson

Local sample now included in the demo. It contains 509 features with striping and marking records in a client-ready schema.

FINAL PRODCVAT point export

Final_SAM_striping_points.geojson

Point layer preserving the original SAM placements before the GIS team builds final linework.

FINAL PRODQGIS line deliverable

Final_SAM_striping_lines.geojson

LineString layer created from start/end points and refined with vertices to follow ground truth.

FINAL PRODMarking deliverable

Final_SAM_markings.geojson

Point marking layer for arrows, words, symbols, crosswalk elements, and rotated marking assets.

Pilot 2 GurneePilot output

scan_0791_GURNEE_IL_striping_lines.geojson

City-specific pilot result showing the same production pattern applied to a named corridor batch.

SAM folder production method

The offer is the full CVAT-to-QGIS production lane, not just labels.

The SAM materials show the real operating system: point placement in CVAT, class cleanup, condition rating, edge-case handling, GeoJSON conversion, QGIS line construction, symbol rotation, and final GIS handoff.

PASS 1

Pass 1: annotate and geolocate

Review the vehicle imagery, choose the clearest frame, place start and end points for stripings, place centroid points for markings, then move each point to its real-world position on the map.

PASS 2

Pass 2: classify

Replace every placeholder SAM point with a specific class. No placeholder labels should remain before export.

PASS 3

Pass 3: condition

Assign Good, Fair, or Poor based on visibility, contrast, edge clarity, paint coverage, and reflectivity where relevant.

PASS 4

Pass 4: QGIS linework

Convert CVAT output to GeoJSON, build continuous striping LineStrings, connect them with associated_id, and rotate marking symbols to match direction of travel.

Striping taxonomy

Linear features are placed with start and end points so GIS can build continuous LineString geometry.

Stripings

solid_whitesolid_yellowdashed_whitedashed_yellowdouble_whitedouble_yellowdotted_whitebike_lane_doublebus_laneno_paintparking_endother_striping

Marking taxonomy

Arrows, crosswalks, stop lines, words, symbols, and route shields use centroid placement and directional attributes.

Markings

crosswalk_standardladder_crosswalkstop_linearrow_leftarrow_rightarrow_straightbike_symbolword_stopword_yieldyield_linerr_crossingother_text

Condition rating

Good

Crisp, visible, high-contrast paint with continuous coverage.

Fair

Visible but fading, with minor edge wear, gaps, or inconsistent color.

Poor

Hard to see, heavily worn, broken, low-contrast, or missing large sections.

QGIS handoff

The GIS cleanup step produces files and attributes production teams can load, inspect, and deliver.

{scan_slug}_striping_points.geojson{scan_slug}_markings.geojson{scan_slug}_striping_lines.geojsonrotation field for marking symbolsassociated_id linking points to linework

What the QA team excludes

Parking lots, driveways, and private-business markings are excluded unless the project scope includes them.
Temporary construction spray paint is not treated as pavement marking inventory.
Physical dividers made of brick, plastic, stone, or concrete are not SAM markings.
Rumble strips are excluded from the striping and marking layer.

Where annotation usually breaks

The common pattern is simple: capture moves quickly, but extraction, QA, and schema cleanup become the bottleneck before client delivery.

Collection finished before extraction capacity is ready
Generic labels need costly GIS cleanup
Reviewer decisions are inconsistent across corridors
False positives and false negatives block delivery
Client schemas require attributes beyond class name
Proposal teams need credible surge capacity

Capacity that helps win bids

Proposal and operations teams need credible production capacity. This demo makes the claim concrete: human-reviewed spatial data, GIS cleanup, a defensible QA lane, and around 2,000 miles per month of current processing capacity across North America and global programs.

Pilot

Small representative sample first

Scale

Surge capacity after collection

Handoff

GIS package plus QA notes

Planning rates for bids

Per-centerline-mile rates you can carry into a DOT proposal as a subcontract line item. Final pricing follows schema, imagery quality, and QA bar review of a corridor sample.

Marking annotation + geolocationfrom ~$12/mi
Annotation + condition ratingfrom ~$15/mi
Full QGIS linework + schema deliverycorridor-quoted

Start with a corridor sample

Send a few miles of striping imagery or an existing marking layer.

We will review the schema, imagery quality, expected classes, exclusions, and QA bar. The response should be useful for operations, proposals, or a pilot scope.

Corridor, route, or tile batch
QA threshold and accuracy requirements
Required output schema

Useful sample notes

Street-level imagery, video, or LiDAR-derived views
Target corridor, route, tile batch, or collection ID
Required marking taxonomy and client schema
Accuracy target, review threshold, and output format
Known exclusions such as private lots or construction paint

Send a striping or marking sample

Share sample imagery, a marking layer, or a schema. We will respond with a production path, QA approach, and delivery estimate.

Asset classes (select any)

Implementation stack

Technologies We Work With

We choose the stack around the job: browser maps for decision surfaces, spatial databases for reliable data, Python and GIS libraries for analysis, and annotation tools when imagery needs reviewer-ready labels.

QGIS

GIS Software

ESRI ArcGIS

GIS Platform

PostgreSQL

Database

PostGIS

Spatial Database

AWS

Cloud Platform

Google Cloud

Cloud Platform

DuckDB

Analytics Database

OpenAI

AI Platform

Claude AI

AI Assistant

CVAT

Annotation Tool

Python

Programming

React

Frontend

Node.js

Backend

Docker

Containerization

Kubernetes

Orchestration

Azure

Cloud Platform

TensorFlow

Machine Learning

Pandas

Data Analysis

NumPy

Scientific Computing

Jupyter

Data Science

Git

Version Control

Linux

Operating System

Ubuntu

Operating System

Mapbox

Mapping Platform

Leaflet

Web Mapping

Fastapi

API Framework

GeoPandas

Geospatial Analysis

GDAL

Geospatial Library