Skip to main content

atlantes-cpd

Online changepoint detection for AIS tracks. A changepoint marks where a track should be split into a new subpath, which lets downstream inference run only when a vessel's behavior may have changed. The detector is served over gRPC as atlanteschangepoint.ChangepointService.

This is a standalone package. It does not import atlantes and has its own dependencies, tests, Dockerfile, and CI workflow (.github/workflows/cpd.yml).

Develop

cd cpd
python -m venv venv
venv/bin/pip install -e '.[dev]'
venv/bin/pytest tests --ignore=tests/integration/serve

The detector integration tests read three AIS track CSVs from tests/data/ (or $CPD_TEST_DATA_DIR); they skip when the files are absent. The tracks are licensed and must not be committed; tests/data/*.csv is gitignored.

Run the service

docker compose up --build

Configuration comes from environment variables:

Variable Default Purpose
CPD_ADDRESS 0.0.0.0 Address the server binds
CPD_PORT 5206 Port the server binds

With the service running, CPD_ADDRESS=127.0.0.1 venv/bin/pytest tests/integration/serve exercises it end to end.

Tuning

Detection thresholds live in src/atlantes_cpd/constants.py.

Regenerating the gRPC code

See src/atlantes_cpd/serve/README.md.

Release to PyPI

The package publishes to PyPI as atlantes-cpd through trusted publishing; no API token is involved.

The repo has a single version, in the VERSION file at the repo root. cpd/VERSION is a symlink to it, and pyproject.toml reads it. A v<version> tag releases the whole repo, and atlantes-cpd is one of the artifacts.

  1. Set VERSION and merge it.
  2. Create a GitHub release with the tag v<version> (for example v1.1.0) and publish it. Drafts and pre-releases don't trigger the workflow.
  3. .github/workflows/publish_cpd.yml checks that the tag matches VERSION, builds the sdist and wheel, and uploads them from the pypi environment.

Metadata

Release files for atlantes-cpd 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for atlantes-cpd 1.1.0
File Size Uploaded Provenance Actions
atlantes_cpd-1.1.0.tar.gz 15.8 kB With provenance Details for atlantes_cpd-1.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for atlantes-cpd 1.1.0
File Interpreter ABI Platform Actions
atlantes_cpd-1.1.0-py3-none-any.whl Python 3 none any Details for atlantes_cpd-1.1.0-py3-none-any.whl

Total release size: 32.5 kB

Release files / atlantes_cpd-1.1.0.tar.gz

Download URL atlantes_cpd-1.1.0.tar.gz
Size 15.8 kB
Tags Source
SHA-256 checksum
How to use checksums
9675f5c456a71aa2092ea74fbe046a46255112ef806aa073d565edfd86912e84
BLAKE2b-256 checksum
How to use checksums
899e1fc3cd3a60bcf58aafae36fd49ffd07e6242d427fa83d6251d609a8f3090
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / atlantes_cpd-1.1.0-py3-none-any.whl

Download URL atlantes_cpd-1.1.0-py3-none-any.whl
Size 16.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ac729ff6e95954f129fa4b1ff1b33f03464fa897e382e7626c2ffb917e9b398d
BLAKE2b-256 checksum
How to use checksums
8792d69e604a0291017279c0edbf21651da0e1934a856d907893edfac42ebaab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Security for atlantes-cpd 1.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for atlantes_cpd-1.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page