Skip to main content

Calculate discrete Frechet distance

Project description

Build Status

DOI

Discrete Fréchet distance

Computes the discrete Fréchet distance between two curves. The Fréchet distance between two curves in a metric space is a measure of the similarity between the curves. The discrete Fréchet distance may be used for approximately computing the Fréchet distance between two arbitrary curves, as an alternative to using the exact Fréchet distance between a polygonal approximation of the curves or an approximation of this value.

This is a Python 3.* implementation of the algorithm produced in Eiter, T. and Mannila, H., 1994. Computing discrete Fréchet distance. Tech. Report CD-TR 94/64, Information Systems Department, Technical University of Vienna.

Function dF(P, Q): real;
    input: polygonal curves P = (u1, . . . , up) and Q = (v1, . . . , vq).
    return: δdF (P, Q)
    ca : array [1..p, 1..q] of real;
    function c(i, j): real;
        begin
            if ca(i, j) > −1 then return ca(i, j)
            elsif i = 1 and j = 1 then ca(i, j) := d(u1, v1)
            elsif i > 1 and j = 1 then ca(i, j) := max{ c(i − 1, 1), d(ui, v1) }
            elsif i = 1 and j > 1 then ca(i, j) := max{ c(1, j − 1), d(u1, vj ) }
            elsif i > 1 and j > 1 then ca(i, j) :=
            max{ min(c(i − 1, j), c(i − 1, j − 1), c(i, j − 1)), d(ui, vj ) }
            else ca(i, j) = ∞
            return ca(i, j);
        end; /* function c */

    begin
        for i = 1 to p do for j = 1 to q do ca(i, j) := −1.0;
        return c(p, q);
    end.

Parameters

P : Input curve - two dimensional array of points
Q : Input curve - two dimensional array of points

Returns

dist: float64
The discrete Frechet distance between curves `P` and `Q`.

Examples

>>> from frechetdist import frdist
>>> P=[[1,1], [2,1], [2,2]]
>>> Q=[[2,2], [0,1], [2,4]]
>>> frdist(P,Q)
>>> 2.0
>>> P=[[1,1], [2,1], [2,2]]
>>> Q=[[1,1], [2,1], [2,2]]
>>> frdist(P,Q)
>>> 0

Project details


Release history Release notifications | RSS feed

This version

0.6

Download files

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

Source Distribution

frechetdist-0.6.tar.gz (2.8 kB view details)

Uploaded Source

Built Distribution

frechetdist-0.6-py3-none-any.whl (7.6 kB view details)

Uploaded Python 3

File details

Details for the file frechetdist-0.6.tar.gz.

File metadata

  • Download URL: frechetdist-0.6.tar.gz
  • Upload date:
  • Size: 2.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/41.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.8

File hashes

Hashes for frechetdist-0.6.tar.gz
Algorithm Hash digest
SHA256 ab1d2592932cfa37e36a29e6df903592a366b86a91e395aa5866ad1cb53ad162
MD5 f21745f987010da4c3a24fac3ba6ef7f
BLAKE2b-256 ebbd6b3ddd08ec7fc63d082215b924127f8fffc6f9743ccd0f2d3c05aad28544

See more details on using hashes here.

File details

Details for the file frechetdist-0.6-py3-none-any.whl.

File metadata

  • Download URL: frechetdist-0.6-py3-none-any.whl
  • Upload date:
  • Size: 7.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/41.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.8

File hashes

Hashes for frechetdist-0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 c451619f1de6739d57c13981c34725a603c1068953d099b8cb07fa08d64f1072
MD5 d208830d86dc33ac6d6cb26405c5801b
BLAKE2b-256 5af8fdd0d7ca48066152f4a80cd645a4f65e909350ee9b2f6026c6d917d73b62

See more details on using hashes here.

Supported by

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