utide
Python distribution of the MatLab package UTide
What it is and what it does
UTide is a Python port of the Matlab UTide package for unified tidal analysis and prediction. It takes time series observations of water velocity or elevation and decomposes them into tidal constituents using harmonic analysis, then allows reconstruction of predicted tidal signals from those coefficients. The package depends on numpy and scipy for numerical computation and is actively maintained, supporting Python 3.9 through 3.13.
The package is designed for oceanographic and coastal engineering applications where understanding tidal components is essential. It implements the methods described in Codiga (2011) and provides a Python-native interface, though the user interface differs from the original Matlab implementation—developers must consult docstrings rather than relying on direct API parity. The project is still in active development, so the API and available functionality may change.
Use it for:
- Extract tidal constituents from observed water velocity or elevation time series at a specific latitude.
- Generate tidal predictions for future time periods based on harmonic coefficients from historical observations.
- Analyze coastal water dynamics by decomposing observed signals into individual tidal harmonics.
- Support oceanographic research requiring harmonic tidal analysis as part of a larger data processing pipeline.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
UTide performs tidal analysis and prediction on time series data, decomposing water velocity or elevation into tidal constituents and reconstructing predictions from those coefficients.
Yes, if you need tidal harmonic analysis in Python. The package has low install friction, active maintenance, no known vulnerabilities, and a permissive license. However, verify that the specific functionality you need is implemented—the documentation notes that some Matlab features are not yet available, and the API differs from the original, requiring careful reference to docstrings.
Install
utide on PyPI
pip
pip install utideuv
uv add utidepoetry
poetry add utideInstalling utide
Before you install
Low friction installation with only numpy and scipy as dependencies. Repository is active with recent commits and a permissive MIT license. Supports modern Python versions from 3.9 onward.
License in practice
MIT license permits unrestricted use, modification, and distribution with minimal restrictions—suitable for both academic and commercial projects.
Quickstart
pip install utide
from utide import solve, reconstruct
coef = solve(
time,
time_series_u,
time_series_v,
lat=30,
nodal=False,
trend=False,
method="ols",
conf_int="linear",
Rayleigh_min=0.95,
)
Requires time series data as numpy arrays and knowledge of the observation latitude; the user interface differs from the Matlab version, so refer to function docstrings for parameter specification.
Verify before relying
- Whether all Matlab UTide functionality is available in this Python port, or what specific features remain unimplemented
- Performance characteristics compared to the original Matlab implementation for large datasets
- Whether the package handles edge cases in tidal analysis (e.g., polar regions, shallow water)
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — numpy, scipy |
| Maintenance | actively maintained — 473 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 118,468/month — #12,117 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: utide-0.3.1-py3-none-any.whl
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
global-land-maskDetermines whether geographic coordinates…
permissive · top 15,000 on PyPI
pymannkendallImplements a suite of Mann-Kendall trend tests…
permissive · top 15,000 on PyPI
pymap3dConverts between geographic and 3-D coordinate…
permissive · top 15,000 on PyPI
sktimesktime provides a unified interface for time…
permissive · top 5,000 on PyPI
asammdfasammdf parses, edits, and exports ASAM MDF…
copyleft · top 5,000 on PyPI
cvxoptcvxopt is a Python library for solving convex…
unclear · top 5,000 on PyPI
pyorbitalPyorbital computes orbital parameters from TLE…
permissive · top 15,000 on PyPI
prophetProphet forecasts time series data using an…
permissive · top 5,000 on PyPI
pystoiComputes Short Term Objective Intelligibility…
permissive · top 5,000 on PyPI