Zach Miller
Marathon Petroleum · Garyville, LA

GIS, Digital Twin & Software at the Refinery

The enterprise GIS, digital twin pipelines, and custom software behind one of the largest refineries in North America. The drone program is where the data starts. Most of the job now is what happens to it after it lands.

Current scope · 2026

One accurate, authoritative site model

I take the refinery's incoming data from CAD drawings, survey, drone captures, and LiDAR, put it in the right coordinate system, and publish it as standards-compliant enterprise GIS in ePlot and as reality capture in the Cintoo digital twin. The site's spatial data has one source of truth instead of five that disagree.

Drone Operations & Fleet The aircraft, sensors, and high-risk environment behind the data Expand

High-value aircraft

Each airframe earns its place by reaching somewhere the others can't: 400 ft above a flare stack, sealed inside a storage tank, or docked on a rooftop running missions unattended.

Flyability Elios 3 flying inside a dark confined space, its cage and lights illuminating the walls
Flyability Elios 3 · confined-space inspection A collision-tolerant caged drone that flies sealed inside tanks, vessels, and columns where no person safely can, mapping the interior with onboard LiDAR.
DJI Matrice 400 enterprise drone
Flagship platform

DJI Matrice 400

The heavy-lift workhorse. Long endurance and swappable payloads for site-wide mapping, structure inspection, and the missions that need the biggest sensors in the air the longest.

Multi-payload · long-endurance · integrated night vision & LiDAR
DJI Matrice 4TD compact enterprise drone with thermal gimbal
Daily driver

DJI Matrice 4T / 4TD

A compact quad carrying wide, telephoto, and radiometric thermal cameras in one gimbal. The everyday aircraft for thermal inspections and quick-turn captures. The 4TD is weatherized to live in the Dock.

Wide + tele + thermal · radiometric · RTK-capable
DJI Dock 3 automated drone-in-a-box station
Automation

DJI Dock 3

A weatherproof drone-in-a-box that houses the M4TD and launches it on a schedule. Recurring inspection routes fly unattended, and the aircraft returns to charge itself between missions.

24/7 autonomous · IP56 · vehicle-mountable
DJI Avata FPV drone with propeller guards
Tight interiors

DJI Avata

A ducted FPV quad with full prop guards for close-quarters interiors and structures. First-person control and 360° capture where a full-size aircraft won't fit.

Prop-guarded · FPV · 360° interior capture

What the fleet carries

The aircraft are delivery vehicles. The value is in the sensors and in reading what they return.

OGIOptical Gas Imaging
Makes hydrocarbon and VOC leaks that are invisible to the eye show up as smoke on screen. An EPA-recognized leak-detection method and the highest-stakes sensor on the fleet in a refinery.
ThermalRadiometric IR
Per-pixel temperature for spotting hot bearings, blocked lines, insulation loss, and tank levels, verified on-site to within 0.1 °F of the commercial reference tool.
LiDARPoint cloud
Dense 3D scans of structures and confined-space interiors that feed the refinery's digital twin and as-built models.
AcousticUltrasonic
Pinpoints pressure leaks and electrical partial discharge by sound, from a safe standoff distance.
RTK GNSSD-RTK survey
Centimeter-level georeferencing so orthomosaics and models line up with real-world coordinates.

A high-risk environment

Flown by the book

Garyville is a live refinery processing over half a million barrels a day. Every flight happens over active process units, around flammable product, and inside airspace and ground hazards that leave no room for improvisation.

  • FAA Part 107, certificated remote pilot, every mission planned and logged
  • Confined-space entry, flying sealed tanks and vessels so people don't have to
  • H2S & hot-work protocols, gas monitoring and permits on every applicable job
  • Active-unit awareness, coordinating with operations around live equipment
  • Site safety training, refinery-specific certifications kept current
  • Pre-flight airspace checks, the reason I built FlightLive, below
Digital Twin & Geospatial Engineering

Drone LiDAR → Cintoo Pipeline

A multi-hour manual process, now one run

An automated Python pipeline that takes drone LiDAR out of Site Scan and lands it in the Cintoo digital twin. It reprojects from State Plane feet to metres with the correct vertical datum, merges thousands of tiles into a single compressed file, and cleans the result. I also run Cintoo data management for the site, including format conversions for outside engineering firms, and built a 360° camera to point cloud workflow that feeds the same twin.

1 run replaces hours of manual work1000s of tiles mergedft → m with vertical datum
Python · Cintoo · Esri Site Scan · LiDAR

AprilTag Asset Tracking

Positioning assets straight from raw drone photos, no photogrammetry step

Detects AprilTag markers in raw drone imagery and georeferences them directly from the photo's camera pose, skipping the photogrammetry pipeline entirely. Getting it accurate meant finding an undocumented quirk in how DJI reports gimbal orientation. Fixing it took position error from roughly 96 ft down to 2 to 3 ft. Packaged as a desktop tool for the team.

~96 ft → 2–3 ft position error1 desktop tool0 photogrammetry steps
Python · computer vision · camera geometry
Drone program dashboard for refinery leadership with map and 3D viewer

Drone Program Dashboard & Builder

From a leadership dashboard to a tool that generates them

Started as a dashboard for refinery leadership showing what the drone program covers and produces. It grew into a builder: upload a plot plan and it generates a full dashboard with a 3D viewer for that site.

React · TypeScript · Mapbox GL · Anthropic SDK

Survey control layersite truth reference

Authoritative monument layer cross-referencing State Plane, NAD83(2011) geodetic, NAVD88 and ellipsoidal heights, and plant grid. Every other dataset on site gets validated against it.

Flight-grid generator14 refineries

Generates KML mapping grids for every Marathon refinery, so capture planning starts from a consistent, correctly placed layout.

360° video → 3D scenegaussian splat pipeline

Drag a raw 360 video onto one file and walk away. About an hour later a navigable 3D walkthrough opens on its own.

Imagery Splitterbatch prep by ground location

Splits large geotagged captures into processing-sized batches by what the camera was looking at, so oblique photos stay with the ground they cover. Originals are opened read-only.

Inspection Software
RefineryDroneOps inspection dashboard mapping process units on the site

RefineryDroneOps

The site's quarterly inspection dashboard

Maps ~96 process-unit polygons with sub-unit photo routing, a thermal viewer verified within 0.1°F of DJI's commercial reference tool, and single-file HTML snapshot publishing for vendor handoff. The system of record for how inspection flights get reviewed at the site.

~96 process units mapped0.1°F thermal viewer accuracy1 file snapshot publishing
Python · FastAPI · Leaflet
FlightLive showing live aircraft, radar, and METAR weather around the Garyville refinery

FlightLive

Pre-flight airspace check for the site's drone crews

One locked map of live aircraft, METAR weather, and animated NEXRAD radar around the refinery. The Rust backend classifies aircraft behavior, detects airspace conflicts by dead reckoning, and predicts whether an aircraft will be audible on site. Ships as a single 6 MB executable.

Rust · Axum · React · Mapbox GLView source ↗
Thermal viewer showing a radiometric flare stack image with ROI box reading 322.8°F

DJI → FLIR Thermal Converter

Byte-level reverse engineering, in daily production use

When DJI's official SDK failed across camera firmwares, I reverse-engineered DJI's proprietary APP3 thermal storage and FLIR's FFF binary container, re-encoding radiometric data via Planck-equation inversion to under 0.01°C round-trip. Ships as one offline .exe used daily by the inspection team.

<0.01°C round-trip error5+ DJI camera models1 .exe offline & batch
Python · NumPy · ctypes · PyInstallerView source ↗

Spring Can AI Inspection

Computer vision replacing a fully manual process

Compares monthly drone captures of pipe-support spring cans to detect lever movement, corrosion, and physical damage, then generates color-coded PDF reports. What used to be a manual, photo-by-photo review now runs as a pipeline.

Python · computer vision · Claude Vision