A portable, light-themed desktop application for reading and displaying GPR data — radargram data, GPS tracks, and file headers — across 20+ vendor formats. Runs on Windows / PowerShell. Version: v1.0.0
Open a PowerShell window at the project root, then run two commands:
.\setup.ps1 # create the 'gpr' venv (Python 3.11) + install deps
& .\gpr\Scripts\python.exe main.py # launch read_gpr-
setup.ps1provisions thegprvirtual environment (Python 3.11) and installsrequirements.txt. If agprenv already exists (here, or a siblingpygprmk\gpr), it is reused — no rebuild. -
After setup, launch any time with:
& .\gpr\Scripts\python.exe main.py
If PowerShell blocks the script, allow it for this session first:
Set-ExecutionPolicy -Scope Process -Bypass .\setup.ps1
| Layer | Choice | Why |
|---|---|---|
| Backend | 🐍 Python 3.11+ | Scientific stack, fully portable |
| GUI | 🪟 PySide6 + QSS | Native Qt widgets, themeable, one hard-locked light theme |
| Icons | 🎨 QtAwesome | Bright, filled, color-coded glyphs |
| Radargram | 📊 Matplotlib (Qt Agg) | Proven RADAN-style raster rendering |
| GPS map | 🛰️ Folium in QWebEngineView | Interactive survey-track map on light tiles |
| Numerics | 🔢 NumPy · Pandas | Array + header handling |
| Geo | 🌍 pyproj | Local X,Y → WGS84 conversion |
| HDF5 | 🗄️ h5py | .h5 / gprMax .out volumes |
- 📂 Open any supported GPR file (or a whole folder of survey segments).
- 📊 Display the radargram with RADAN-style controls — colour tables, gain, transfer functions, contrast, raster/wiggle modes, depth/time axis.
- 🧾 Display the full file header in a dedicated "Data Header" panel (acquisition parameters decoded from the vendor header).
- 🛰️ Display the GPS / NMEA survey track on an interactive Folium map, with a cursor marker synced to the radargram position.
- 🧭 Navigate file-by-file, channel, part, and along-line display windows.
- 🖼️ Multi-tab documents — open several files side by side.
- 📦 GRED_HD-style export — convert any browsed data and save the GSSI
companions
.V00+.HDR_00+.gec(mirrors GRED_HD output).
GSSI (.v00 .v01 .v02 .d00 .dt .dt1 .dzt), Sensors & Software (.dt1 .hd),
MALA (.rd3 .rd7 .rad), SEG-Y (.sgy .segy), SEG-2 (.seg2), ImpulseRadar
(.iprb .iprh), IDS (.dt .gec), Geotech OKO (.gpr), Transient (.sgpr),
Utsi / ENVI (.dat + .hdr), gprMax (.out), 3dradar (.vol), Pickle (.pkl),
ASCII (.txt), HDF5 (.h5 .hdf5).
- ☀️ Light-themed throughout — every window, panel, dialog, toolbar, radargram
canvas, and map renders on a white / light-gray surface with
#212121text. No dark surfaces anywhere. - 🎯 Focused & fast — a pure reader: no heavy processing or AI stack, so it loads and displays quickly.
- 🧳 Portable & self-contained — all icons, fonts, and assets are bundled in-project; runtime paths are project-local.
- 🧱 Proven engine — the multi-format loader and RADAN-style display chain are
vendored from the mature
pygprmkbackend, preserving exact display behaviour. - 🔁 Round-trip export — exported
.V00re-opens in the reader;.HDR_00and.gecfollow the GRED_HD tagged-text layout. - 🪟 PowerShell-first — one-command
run.ps1bootstrap on Windows.
gpr_reader/
├── main.py # entry point
├── run.ps1 # PowerShell launcher
├── requirements.txt
├── app/ # PySide6 shell + browse module + theme/display/state
├── scripts/ # reader engine (readers/*, loaders, GRED_HD export)
├── icons/ fonts/ assets/ resources/
└── docs/
Mrinal Kanti Layek github.com/mklayek
Dr. Mrinal Kanti Layek Postdoctoral Researcher
Geophysics & AI Lab Department of Energy & Resources Engineering Chonnam National University Gwangju, Republic of Korea [61186]
지구물리 및 인공지능 연구실 에너지자원공학과 전남대학교 광주광역시 대한민국 [61186]
Email: layek.mk@gmail.com