Overlaying an Entire R&H Network in 3 minutes
⸻
🔧 Overlaying an R&H Network in 3 Minutes Using LRSOps
If you’ve ever spent half your day watching a progress bar crawl through a linear overlay job, this one’s for you.
LRSOps is a command-line tool I built to handle LRS workflows in a faster, more scriptable way — no GUI, no endless index rebuilds, and no “model builder spaghetti.”
⸻
🚦 What’s It Do?
LRSOps overlays tabular event data onto your LRS route network in seconds using just a few commands. It pulls geometry from an Esri Roads & Highways (R&H) layer or any valid LRS, overlays it with event data from CSV or other formats, and exports clean, dynseg’d results to CSV, Excel, or SQLite.
In a real-world test, I used LRSOps to segment every HPMS attribute across Louisiana’s entire state network in under 20 seconds.
⸻
🧠 Why LRSOps?
• Scriptable = repeatable, automatable, and testable.
• Fast = real-time feedback, even on big networks.
• Lightweight = no GUI, no heavy enterprise stack.
It’s ideal for DOTs and consultants managing HPMS data, QA workflows, or trying to build repeatable pipelines for overlays.
⸻
🛫 Getting Started with LRSOps
You can download the lrsops executable here. It should work right away for tabular commands.
Want geometry support? You’ll need ogr2ogr installed. If you already have ArcGIS Pro installed, you might already have it somewhere in your environment — worth checking.
⚙️ Installing ogr2ogr on Windows 1. Download OSGeo4W here. 2. Choose the Express Install option. 3. Click through the install wizard. That’s it.
⸻
🚀 Onboarding Example
1️⃣ Get the base network file:
lrsops make-roads-geobuf --lrs-url https://gis.iowadot.gov/rams/rest/services/lrs/MapServer/exts/LRSServer/networkLayers/0 -o dot.geobuf
⸻
2️⃣ Overlay all R&H layers after downloading them:
lrsops rhoverlay --lrs-url https://gis.iowadot.gov/rams/rest/services/lrs/MapServer/exts/LRSServer/networkLayers/0 --all --lrs-database=false -o overlay.csv
This: • Downloads all R&H event layers as local CSVs. • Overlays them using the MapServer’s display fields. • Outputs a combined file (overlay.csv) with something like:
RouteID,BMP,EMP,62_RIGHT_SHOULDER_RUMBLE,...,102_AADT
It’s dense. It’s beautiful.
⸻
3️⃣ Tile the base network at zoom 16:
lrsops tile -r dot.geobuf -z 16 -o tiles.csv
Which gives you output like:
TileID,ColorMap,RouteID,BMP,EMP
15910_24188_16,10,"C001246010E",0.497,0.761
Just used for visualizaiton later.
⸻
4️⃣ Overlay the overlayed file with tile event info:
lrsops overlay -b overlay.csv -s tiles.csv -c TileID,ColorMap -o overlay_tiled.csv
This joins the tile data into your full overlay — letting you break down results by tile, priority, color mapping, or just for faster rendering pipelines.
⸻
5️⃣ 🔁 Dynamically Segmenting the File to a GDB
Once you’ve got your data fully overlaid and enriched, you can dynamically segment it straight into a file geodatabase:
lrsops dynseg -r dot.geobuf -i overlay_tiled.csv -o dot.gdb
This gives you a ready-to-use, fully segmented GDB file with geometry — ready for ArcGIS Pro, QGIS, or downstream pipelines. No desktop steps, no export clicks, just… done.
⸻
🎥 Want to see it in action?
Here’s a short demo provided above:
⸻
📨 Try It?
I’m considering open-sourcing LRSOps. In the meantime, happy to share the executable if you’re interested — just reach out.
Let’s put some real speed behind LRS work.
— Bennett
⸻