Skip to main content

Tide prediction library

Project description

tide-prediction

Tidal prediction library for French Atlantic and English Channel ports. Computes high/low water times, heights, tidal coefficients, and full height curves — all from a fast Rust core exposed via Python bindings.

Installation

pip install tide-prediction

The package is imported as import tide (not tide_prediction).

Quick start

import tide

# Predict a full day
pred = tide.predict_day("FR-BREST", "2024-06-15")

from datetime import datetime, timezone

for e in pred.extremes:
    kind = "HW" if e.is_high_water else "LW"
    coef = f"  coef={e.coefficient}" if e.coefficient else ""
    dt = datetime.fromtimestamp(e.time, tz=timezone.utc).strftime("%H:%M")
    print(f"{kind}  {dt}  {e.height:.2f} m{coef}")

# HW  00:26  4.83 m  coef=39
# LW  06:41  2.40 m
# HW  13:07  4.80 m  coef=42
# LW  19:07  2.61 m

API

tide.predict_day(port_id, date) → DayPrediction

Returns high/low water extremes and a 10-minute height curve for a single day.

  • port_id — port identifier (e.g. "FR-BREST")
  • date — date string "YYYY-MM-DD" (UTC)

tide.predict_range(port_id, from_date, to_date) → list[DayPrediction]

Same as predict_day over a date range (inclusive).

tide.height_at(port_id, timestamp) → float

Instantaneous water height in metres at a given Unix UTC timestamp.

from datetime import datetime, timezone

ts = int(datetime(2024, 6, 15, 12, 0, tzinfo=timezone.utc).timestamp())
h = tide.height_at("FR-BREST", ts)
print(f"{h:.3f} m")  # 4.607 m

Port discovery

# List all available ports
ports = tide.list_ports()

# Search by name
results = tide.search_ports("saint")

# Get a specific port
port = tide.get_port("FR-BREST")
print(port.name, port.latitude, port.longitude)

Data model

DayPrediction
├── port_id        str
├── date           str          "YYYY-MM-DD"
├── extremes       list[TidalExtreme]
│   ├── time           int      Unix timestamp UTC
│   ├── height         float    metres
│   ├── is_high_water  bool
│   └── coefficient    int|None 20–120, Atlantic/Channel HW only
└── heights        list[HeightPoint]
    ├── timestamp   int          every 10 minutes
    └── height      float        metres

Available ports

ID Port
FR-BREST Brest
FR-CHERBOURG Cherbourg
FR-SAINT-MALO Saint-Malo
FR-BORDEAUX Bordeaux (Port de la Lune)
FR-PORT-TUDY Port Tudy (Île de Groix)
FR-PORT-NAVALO Port-Navalo (Golfe du Morbihan)
FR-ARRADON Arradon (Golfe du Morbihan)
FR-AURAY Auray (rivière d'Auray)
FR-ETEL Étel
GB-PORTSMOUTH Portsmouth

Tidal coefficients

Coefficients (20–120) are computed for Atlantic and English Channel high waters relative to the Brest reference tidal range, following the French SHOM convention. They are only available for high water (is_high_water = True) at ports on the Atlantic/Channel coast.

Requirements

  • Python ≥ 3.8
  • Currently tested on Linux x86-64 (manylinux). macOS and Windows wheels may be added in future releases.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tide_prediction-0.1.0.tar.gz (22.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tide_prediction-0.1.0-py3-none-manylinux_2_34_x86_64.whl (306.3 kB view details)

Uploaded Python 3manylinux: glibc 2.34+ x86-64

File details

Details for the file tide_prediction-0.1.0.tar.gz.

File metadata

  • Download URL: tide_prediction-0.1.0.tar.gz
  • Upload date:
  • Size: 22.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.12.6

File hashes

Hashes for tide_prediction-0.1.0.tar.gz
Algorithm Hash digest
SHA256 2333dc66cc22fb9927034b12ca7082bcc978a8c8eb39fc2ead380184018d21f2
MD5 bca042ac936574088d4de3a7d6e376f0
BLAKE2b-256 59da9af4575532914eddf208a06761e2d6847a7ecc4d30eed41aeca6eec89ee5

See more details on using hashes here.

File details

Details for the file tide_prediction-0.1.0-py3-none-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for tide_prediction-0.1.0-py3-none-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 4197fbf960c5819f02a1c3b7cb309ba7e3e997deb0cf5a578b4723007c9e5323
MD5 c9a8047327a7def1b16fb0c8bc840a0c
BLAKE2b-256 5eb8f896699261941282af4af03a231631e75e6324f4e0888c81312ad162ed49

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page