Global GPS ocean tidal loading (OTL) analysis. gotl processes worldwide IGS/GNSS
GPS stations through a GipsyX kinematic-PPP -> trajectory-model -> harmonic-analysis
pipeline to estimate per-station ocean tidal loading displacement coefficients, then
evaluates ocean tide models (TPXO9, FES2014b, EOT20) against the GPS-observed signal.
The pipeline runs in five phases:
- GipsyX kinematic PPP - position time series from RINEX, with OTL applied during PPP.
- LoadDef OTL prediction - Love Numbers -> Green's Functions -> convolution with a
tide model -> per-station Harpos
.otlloading coefficients. - Hardisp - IERS
hardisptime series of the predicted loading displacement. - SLTM + VTide - a Standard Linear Trajectory Model (trend + jumps + oscillations, fit by IRWLS) strips non-tidal signal; VTide harmonic analysis estimates 11 tidal constituents (M2 S2 N2 K2 K1 O1 P1 Q1 MF MM SSA) with uncertainties.
- Multi-model comparison - vector misfit of GPS-derived vs modelled loading per constituent.
Algorithms, sign conventions, and file formats are documented in the module docstrings
under src/gotl/.
Requires Python >=3.11 and Poetry.
poetry install # core pipeline
poetry install --with loaddef # + mpi4py for LoadDef convolution (needs MPI dev headers)This installs the gotl CLI.
This repository contains the analysis code only. To run the full pipeline you also need:
- GipsyX 2.x (JPL) - kinematic PPP engine + reference data.
- LoadDef (Martens et al.) - load-deformation toolkit (Phase 2).
- IERS
hardisp- Fortran source is vendored underhardisp/; build withcd hardisp/src && make, then linkhardisp_exe. - Ocean tide model grids - TPXO9-atlas, FES2014b, EOT20 NetCDF files from the model providers.
Large inputs/outputs (RINEX, tide grids, results, caches) are gitignored and supplied via
environment variables (GOTL_*).
gotl run-all # all stations in data/station_registry.csv
gotl run aboa # single station
gotl status # per-station completion table
gotl compare aboa # GPS vs tide-model residuals
gotl gen-otl-params aboa --tide-model FES2014 # LoadDef OTL params
gotl gen-hardisp aboa --years 2000,2001 # hardisp time seriessrc/gotl/ gotl package (pipeline, sltm, tides, io, gipsy, loaddef, compare, cloud, web)
scripts/ LoadDef / download / cloud helper scripts
hardisp/ IERS hardisp Fortran source
tests/ pytest suite (synthetic fixtures)
data/ station_registry.csv (all other data is external / gitignored)
poetry run pytest tests/ -vMIT - see LICENSE.
The vendored hardisp/ Fortran is IERS Conventions software and retains its own headers.
gotl builds on GipsyX (JPL), LoadDef (Martens et al.), and VTide/UTide; obtain and use
those under their respective licenses.