← Projects

Bridge Inspection Pipeline

About

A Python pipeline that takes an element-organized bridge inspection PDF (the standard FHWA/AASHTO format) and reorganizes it into a station-organized field report — one page per walking stop along the bridge, with every relevant element grouped together.

The Problem It Solves

The default element-organized format is great for reporting but terrible for field inspection. Standing at Pier 2, an inspector shouldn't have to flip between four separate element sections to see everything about it. This tool inverts the organization — same data, different axis.

Features

  • Reorganizes element-based PDFs into one page per physical station
  • Color-coded condition state highlighting (green → red)
  • Blank field notes lines for handwriting on-site
  • Interactive browser UI to classify unknown elements
  • Learns from your classifications over time via config.yaml
  • Fully local — no data leaves your machine

How It Works

① extract.py — PDF → element data (JSON)

② classify.py — 4-layer classification cascade

③ review_server.py — browser UI for uncertain elements

④ regroup.py — pivot to physical stations

⑤ render.py — generate field-ready PDF

Tech Stack

  • Python 3.10+
  • pdfplumber — position-aware PDF table extraction
  • reportlab — PDF generation
  • Built-in http.server — no Flask or Node required
  • Vanilla JS review UI — no framework dependencies

Quick Start

pip install -r requirements.txt

python pipeline.py

# or on your own report:

python pipeline.py your_report.pdf field_report.pdf

View on GitHub →