Skip to main content

Jupyter widgets for scheduling processes and visualizing the resulting (live) data

Project description

name name

Juts

Jupyter widgets for scheduling processes and visualizing the resulting (live) data. While it is designed to use custom data-specific visualizations (plot widgets) based on ipywidgets, visualizations for time series data (bqplot), animations (matplotlib) and 3D data (ipyvolume) are included.

Quickstart

To start a process a so-called job has to be set up. A job consists of a Python function and a configuration. The function contains the code (machine learning, simulation, ....) to be executed, for example:

import time as tim
def wait_n_times_x_ms(config, process_queue=None, return_dict=None):
    n = config["parameter"]["n"]
    x = config["parameter"]["x"]
    
    time = list()
    time_series = list()
    for i in range(n):
        time.append(i)
        time_series.append(i / x)
        
        process_queue.put(dict(progress=int(i/n * 100),
                               time=i,
                               time_series=i/x))
        tim.sleep(x)

The configuration(s) can be read from a yaml file like this:

wait_40_times_100_ms:
    parameter:
        n: 40
        x: 0.1
        
wait_10_times_300_ms:
    parameter:
        n: 10
        x: 0.3

or can be defined as python dictionary.

Screencast min example.webm

Also live data can be monitored during script execution:

Screencast min example live.webm

A simulation example

A more practical relevant example is the following simulation of a reaction wheel pendulum under state feedback control.

Screencast pendulum.webm

Widgets can be easily connected if required:

Screencast pendulum link.webm

Since the simulation runs quite fast, a loop was put after it which sends the data with a delay. This shows that a job could also record live data from an experiment, so one could compare the simulation data with the measurements from a real pendulum.

Screencast pendulum live.webm

Visualizing 3D data

An example plot widget to view 3D data is also included. This one relies on ipyvolume.

Screencast 3d.webm

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

juts-2023.4.2.tar.gz (18.5 kB view hashes)

Uploaded Source

Built Distribution

juts-2023.4.2-py3-none-any.whl (20.3 kB view hashes)

Uploaded Python 3

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