Skip to main content

Tools for reading, processing, and writing CUWB data

Project description

process_cuwb_data

Tools for reading, processing, and writing CUWB data

Steps

  1. Copy .env.template to .env and update variables

  2. Install packages

    just build

    You may need to install pybind11 brew install pybind11 And you may need to manually install cython and numpy pip install numpy cython pythran

  3. Download/create ground_truth_tray_carry.csv to ./downloads/ground_truth_tray_carry.csv

  4. Generate pickled groundtruth features dataframe from ground_truth_tray_carry.csv

    process_cuwb_data \
        generate-tray-carry-groundtruth \
        --groundtruth-csv ./downloads/ground_truth_tray_carry.csv
  1. Train and pickle Tray Carry Detection Model using pickled groundtruth features
    process_cuwb_data \
        train-tray-carry-model \
        --groundtruth-features ./output/groundtruth/2021-05-13T12:53:26_tray_carry_groundtruth_features.pkl
  1. Infer Tray Interactions using pickled Tray Carry Detection Model
    process_cuwb_data \
      infer-tray-interactions \
      --environment greenbrier \
      --start 2021-04-20T9:00:00-0500 \
      --end 2021-04-20T9:05:00-0500 \
      --tray-carry-model ./output/models/2021-05-13T14:49:32_tray_carry_model.pkl

Other CLI Commands/Options

Export pickled UWB data

Working with Honeycomb's UWB endpoint can be painfully slow. For that reason there is an option to export pickled UWB data and provide that to subsequent inference commands.

    process_cuwb_data \
        fetch-cuwb-data \
        --environment greenbrier \
        --start 2021-04-20T9:00:00-0500 \
        --end 2021-04-20T9:05:00-0500

Use UWB export to run Tray Interaction Inference

    process_cuwb_data \
        infer-tray-interactions \
        --environment greenbrier \
        --start 2021-04-20T9:00:00-0500 \
        --end 2021-04-20T9:05:00-0500 \
        --tray-carry-model ./output/models/2021-05-13T14:49:32_tray_carry_model.pkl \
        --cuwb-data ./output/uwb_data/uwb-greenbrier-20210420-140000-20210420-140500.pkl

Supply Pose Track Inference to Tray Interaction Inference

Use Pose Tracks when determining nearest person to tray carry events.

Pose Inferences need to be sourced in a local directory. The pose directory can be supplied via CLI options.

    process_cuwb_data \
        infer-tray-interactions \
        --environment greenbrier \
        --start 2021-04-20T9:00:00-0500 \
        --end 2021-04-20T9:05:00-0500 \
        --tray-carry-model ./output/models/2021-05-13T14:49:32_tray_carry_model.pkl \
        --cuwb-data ./output/uwb_data/uwb-greenbrier-20210420-140000-20210420-140500.pkl \
        --pose-inference-id 3c2cca86ceac4ab1b13f9f7bfed7834e

Development

MacOS (Monterey)

  1. Install pyenv:

    brew install pyenv

  2. Create a 3.x venv:

    pyenv virtualenv 3.x.x wf-process-cuwb-data

  3. Set ENV

This was helpful after the transition from macOS X to macOS 11. As packages evolve, this may not be needed depending on exact Mac version and python version. e.g. macOS 12 with Python 3.10 doesn't require the env var

export SYSTEM_VERSION_COMPAT=1
  1. Install scipy dependencies:

    brew install openblas lapack pythran pybind11

    export OPENBLAS=$(brew --prefix openblas) export CFLAGS="-falign-functions=8 ${CFLAGS}"

  2. Install python libraries

    pip install numpy cython pythran

  3. Install add'l packages:

    just install-dev

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

wf-process-cuwb-data-1.5.3.tar.gz (281.4 kB view hashes)

Uploaded Source

Built Distributions

wf_process_cuwb_data-1.5.3-py3.10.egg (130.4 kB view hashes)

Uploaded Source

wf_process_cuwb_data-1.5.3-py3-none-any.whl (59.2 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