Skip to main content

Pattern Discovery Kit

Project description

DISCOver PATterns (DISCOPAT)

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 discopat from the source code by doing the following:

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

Quickstart

Here is an example to briefly present the API:

import numpy as np

from discopat.core import Box, Frame, Model, Movie, Tracker
from discopat.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

discopat-0.1.0.tar.gz (3.8 kB view details)

Uploaded Source

Built Distribution

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

discopat-0.1.0-py3-none-any.whl (3.5 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for discopat-0.1.0.tar.gz
Algorithm Hash digest
SHA256 cef31e83c8bec4e0ebcb8811c29af1421b62e01593f306ba2b344433f47e6880
MD5 8baa7f8b88555ad1f7c623370100dd4a
BLAKE2b-256 3991497be7f8ef0e39c17509ead18073451a20b07165726d871b1b39b3e88a54

See more details on using hashes here.

File details

Details for the file discopat-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: discopat-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 3.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.0

File hashes

Hashes for discopat-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fa512b018f889108bf726ae0c73f2ce668ae04bfbec58682b7e12a93b2e1b164
MD5 ae8700f2405cedd6a02aa88a04a48bee
BLAKE2b-256 429a4eac5354342facee650d2e8157ae78de734f25848a10074508d203c2abb2

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