Skip to main content

Currently in pre-release stage. An OSI-approved license (most likely Apache 2.0 or MIT) will be chosen before the first official release.

Online documentation: https://dmanage.readthedocs.io/

D-Manage

This is a Python package for generating, organizing, and processing data. This package offers many useful features to anyone who processes data, but it is most useful for those who wish to create a database from simulation or experimental data. By following the D-Manage methodology, this package offers:

  • Automatic and parallel application of user defined data run methods to the entire data sweep

  • Caching methods to store high-cost processed data in RAM or the drive for use in other methods

  • Metadata methods to organize and interpret processed data

  • Algorithms for signal processing, coordinate transformation, and more. (numpy, Pandas, Polars, XArray, PyArrow) [1]

  • Data Plotting tools

  • Data visualization interface, IN DEVELOPMENT

  • Server interface to run your project remotely as if it was local, IN DEVELOPMENT

  • Creating databases from experimental and simulation files, IN DEVELOPMENT

  • Data refactoring methods to help homogenize your data, IN DEVELOPMENT

Philosophy

There are many aspects to the philosophy, but the crux of it is based on the data hierarchy. The hierarchy currently consists of three levels: component, unit and group levels. Usually, the data unit (the middle level) represents one simulation/experimental run, but it can be defined in any way that suites the problem. The data unit consists of data components (the lowest level), and those represent different parts of your unit like images, waveforms, or tables, for example. The data group consists of multiple data units. Usually, the data group represents simulation/experimental sweeps. The D-Manage approach allows users to focus on processing the data unit and components, and dmanage automatically can deploy the methods to the entire data group efficiently.

Other aspects of the philosophy focus on best practices and tools/components to aid in processing data efficiently, like parallel processing, caching data, metadata, visualization, and remote data access.

Basic Project Procedure

Generate Data

Generate the data and store following D-Manage guidelines. The actual data of the unit can be a file or directory that contains the data.

Create Components

Create component objects to read and analyse specific parts of your data. These components may already exist for your application. A list of community developed components can be found in a to-be-determined location.

Create DataUnit

Create a DataUnit (DU) object that can read and process all simulation/experimental data from one run. The user develops this code for their specification. D-Manage provides best practices and tools to help make the DataUnit object.

Create DataGroup

Use dmanage to convert the DataUnit into a DataGroup object automatically. Now the DataGroup object can identify all data units within the directory scope, apply DataUnit methods to each unit, and collect the results in one place. In this way, access to the raw data is readily available and a summary of all the data can be generated for application of machine learning methods.

Data Visualization

Eventually data generation and data analysis will feed into each other for efficient data generation and visualization. This offloads the data organization tasks from the user so they can focus on analysis.

Install

The package is available in PyPi:

pip install dmanage

Basic Use

Follow the tutorials in the documentation. Use the template to create your first DataUnit and DataGroups.

Remote Computing

The dmanage package utilizes Pyro5 to implement remote procedure calls (RPC) to interact with servers. If your data lives on a remote server, this is the way to go! Basically, the user’s data objects can be generated on the server, and the client can directly access those objects through a proxy and receive the results locally. Of course, the network speed limits how much data that can be transferred practically, but often times results are much more compact than the raw data itself, so this works well!

This functionality is not provided by default, but is easy to enable. Install a fork of the Pyro5 project to your environment using the following command:

pip install dmanage[Pyro5]

Development

create a virtual environment, clone repo, and create an editable install::

clone https://github.com/pearlmam/dmanage.git cd dmanage conda create -n dmanage -c conda-forge spyder-kernels conda activate dmanage pip install -m . pip install .[all] pip install .[dev]

Anaconda

create an environment, install pip, and then install the editable package:

conda create -n dmanage
conda activate dmanage
conda install pip
pip install -e <path/to/dmanage>

to see the environment in Spyder, v6 requires spyder-kernels==3.0. PyQt5 is included to enable qt interactive plots:

conda activate dmanage
pip install spyder-kernels==3.1.* PyQt5

Create Conda Package

First, create the PyPi package following the instructions . Then use grayskull to make the conda equivalent yaml file:

pip install grayskull
conda install -c conda-forge conda-recipe-manager
grayskull pypi dmanage

Acknowledgments

This project was developed at:

  • Boise State University (BSU)

Much of this project was developed to support grant research. While this project was not the direct goal of these grants, development was supported by them nonetheless.

Funding of this project was supported by:

  • Office of Naval Research (ONR)
    • N00014-21-1-2024

  • The Air Force Office of Scientific Research (AFOSR)
    • FA9550-22-1-0434

    • FA2386-24-1-4055

Metadata

Release files for dmanage 0.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dmanage 0.0.4
File Size Uploaded
dmanage-0.0.4.tar.gz 1.9 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for dmanage 0.0.4
File Interpreter ABI Platform
dmanage-0.0.4-py3-none-any.whl Python 3 none any Details

Total release size: 2.0 MB

Release files / dmanage-0.0.4.tar.gz

Download URL dmanage-0.0.4.tar.gz
Size 1.9 MB
Tags Source
SHA-256 checksum
How to use checksums
dac207db1ed0397a3ce729951520b0222aa0d1ac1161afd348238387d5844e6b
BLAKE2b-256 checksum
How to use checksums
eb9aae22df7443e663dc9d9083f560b9a0a4273cbadcab3323c5c6cdfed860cf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / dmanage-0.0.4-py3-none-any.whl

Download URL dmanage-0.0.4-py3-none-any.whl
Size 104.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0b1f421039194db31074e2436fc5c8b795d89e89713eeb47de9cb8e68e52ec8e
BLAKE2b-256 checksum
How to use checksums
a45879fc80f6463fb29f92b14e92cbbd71826e8020b6c5d9ce4f75916351d47e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release history Release notifications | RSS feed

This release

0.0.4 This release

2 release files

0.0.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page