Utility inspection data pipeline

An automated pipeline for utility inspection records and helicopter tracks.

What I did

I built and maintained the pipeline, linked helicopter tracks with work orders and inspections, and published the updated data to ArcGIS Portal.

Result: The automated pipeline completed 30+ scheduled monthly runs and removed two hours of manual work per run. GIS database refreshes took 80% less processing time per run.

Tools

  • Python
  • Selenium
  • ArcPy
  • SQL
  • ArcGIS Portal

Client records, infrastructure locations, credentials, and source code are not shared. Proximity to a flight path indicates possible inspection coverage; it does not independently verify that an asset was inspected.

From source records to spatial coverage

The flight workflow combined exported track points with flight metadata, standardized the fields, and constructed ordered flight lines. A separate consolidation step mapped structures, poles, towers, and substations into a common asset schema.

Define what the spatial match means

The archived method used a 350-foot proximity rule to associate existing assets with flight lines and attach flight attributes. This produced candidate coverage information for inspection reporting.

A nearby flight path is a spatial relationship, not independent confirmation of an inspection. The coverage result must be interpreted alongside the operational inspection records.

Connect processing with GIS delivery

The retained project material includes processing scripts, saved GIS outputs, a tool guide, and historical geoprocessing messages. These support the implementation described here; individual tool-history entries are not counts of complete scheduled pipeline runs.

The related ground patrol case focuses on inspection rules and reporting. The runnable example on this page uses invented records to demonstrate data-pipeline checks separately from the client workflow.

  • Use stored timestamps to select new flight records for processing.
  • Apply explicit field mappings when moving staged data into GIS feature classes.
  • Join work orders with asset attributes and geographic context.
  • Publish refreshed information for inspection dashboards and related analysis.

Workflow and example

Flight and asset data meet in spatial coverage analysis before GIS publication
An original explanation of the source-data flow. It uses generic components and contains no client records or infrastructure locations.

Try a small data pipeline

See how sample records are checked, loaded, and updated, including what happens when a load fails.

Uses invented data; separate from this project.

View example
Technical details

Independent consulting · September 2022 to August 2025

Inspection data came from several sources and needed regular updates in the GIS database.

  • Collect helicopter track exports and flight metadata with Python and Selenium.
  • Normalize flight attributes and construct ordered flight lines from timestamped points.
  • Consolidate asset schemas and use spatial proximity to associate assets with flight coverage.
  • Stage and refresh GIS records, calculate inspection priorities, and publish updated information to ArcGIS Portal.

Image viewer

100%