Skip to main content

Pattern Discovery Kit

Project description

PATteRn dIsCovery Kit (PATRICK)

Build Status Code Coverage

Welcome to the Pattern Discovery Kit!

This library provides tools to discover, detect, and track meaningful patterns in physical signals. These signals can be of various forms:

  1. Time series,

  2. Images,

  3. Movies,

  4. Any other type of n-dimensional data.

Installation

You can install patrick from the source code by doing the following:

git clone https://github.com/mansour-b/patrick.git
cd patrick
pip install .

Quickstart

Here is an example to briefly present the API:

import numpy as np

from patrick.core import Box, Frame, Model, Movie, Tracker
from patrick.display import plot_frame

# Define the dimensions of the problem
frame_width = 5
frame_height = 5
movie_length = 3
gif_frames_per_second = 2

# Define a concrete model class, just for the example
class DumbModel(Model):
    def predict(self, frame: Frame) -> Frame:
        frame_id = int(frame.name)
        frame.annotations.append(
            Box(label="noise_in_a_square", x=frame_id, y=frame_id, width=1, height=1)
        )
        return frame

model = DumbModel()

# Our data for this short tutorial
frames = [
    Frame(
        name=str(10 * i),
        width=frame_width,
        height=frame_height,
        annotations=[],
        image_array=np.random.random(frame_height, frame_width),
    )
    for i in range(movie_length)
]

movie = Movie(name="some_noise", frames=frames, tracks=[])

# Run the detection model on individual frames
analysed_frames = [model(frame) for frame in movie.frames]
analysed_movie = Movie(
    name="some_noise_with_boxes", frames=analysed_frames, tracks=[]
)

# TBD: run tracker on detections
analysed_movie = tracker.make_tracks(analysed_movie)
analysed_movie.name = "some_noise_with_boxes_and_tracks"

# Plot individual frames with detections
for frame in analysed_movie:
    plot_frame(frame)

# TBD: make a GIF to show the tracks
export_to_gif(analysed_movie, fps=gif_frames_per_seconds)

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

pattern_discovery_kit-0.2.0.tar.gz (14.4 kB view details)

Uploaded Source

Built Distribution

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

pattern_discovery_kit-0.2.0-py3-none-any.whl (18.0 kB view details)

Uploaded Python 3

File details

Details for the file pattern_discovery_kit-0.2.0.tar.gz.

File metadata

  • Download URL: pattern_discovery_kit-0.2.0.tar.gz
  • Upload date:
  • Size: 14.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.0

File hashes

Hashes for pattern_discovery_kit-0.2.0.tar.gz
Algorithm Hash digest
SHA256 46de33bd3d221cbcb47d1c63fea23e379ebc0c64576b98c745b24ae93647c0cf
MD5 c777bed90a2e53a3cf4640a531d53723
BLAKE2b-256 d36e6704e15f5d5123048a2d06686b3a4f15e30f19d5461bcaace5008b51b34a

See more details on using hashes here.

File details

Details for the file pattern_discovery_kit-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for pattern_discovery_kit-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0ee59cc67d61da6295906ad75f449a6eacdf5adeaa262a819f4f72dc083b1d90
MD5 0be7a6df57071fa9b05bc177aa28a5d4
BLAKE2b-256 42c3cf3e4be69299a3b71711f21fa47e202729f6d291d7372dbde16df8f1b2a2

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