Skip to main content

app for battery database

Project description

NOMAD Plugin for Battery Database

This repository contains the nomad-battery-database plugin, which allows you to parse, schematize, and visualize curated experimental battery properties from the literature within NOMAD. In addition to that, you can upload your own creation directly into the dataset.

The plugin provides schemas for storing battery data and includes a parser to automatically process and upload datasets from tabular files. It is designed for two primary workflows: manually entering single data points and batch-uploading large datasets.

Features

  • Dual Schema System: Includes a Battery schema for manual uploads and the more detailed ChemDataExtractorBattery schema for batch parsing.
  • Flexible Parser: The BatteryParser automatically processes .csv, .xls, and .xlsx files.
  • Automated Normalization: Automatically parses chemical compositions, generates Hill-ordered formulas, creates publication references from DOIs, and standardizes property values.
  • Dedicated Search Application: Provides a powerful, interactive user interface within NOMAD for exploring and visualizing the battery data.

The Battery Database Application

Once your data is uploaded and processed, you can explore it using a dedicated application within NOMAD. This interface, defined in the plugin's __init__.py file, is designed for intuitive data discovery and visualization.

The application can be found by navigating to the Explore menu and selecting Battery Database under the "Use Cases" category.

The interface consists of three main components:

  1. Filter Panel: On the left, you can narrow your search by key metadata. Filters include Material (chemical formula), Journal, Publication Year, Available Properties, and more.
  2. Interactive Dashboard: A series of widgets at the top provide a visual summary of your search results. This includes a Periodic Table of a Periodic Table of the elements present, Histograms for the distribution of key properties (Capacity, Voltage, Energy Density), and Scatter Plots to visualize relationships between properties like Voltage vs. Capacity.
  3. Results Table: A detailed and sortable table at the bottom displays the entries matching your criteria. Default columns include Material, Journal, Capacity, Voltage, and Energy Density.

For a complete walkthrough of the application's features, see the Searching and Exploring Battery Data guide.

Getting Started

To get started with adding your own data, follow our step-by-step guides.

Documentation

This README provides a high-level overview. For detailed information on the schemas, parser, and contribution guidelines, please refer to our full documentation.

Installation

To add this plugin to your NOMAD or NOMAD Oasis instance, please follow the official NOMAD plugin installation instructions.

Contributing

Contributions are very welcome! If you would like to help improve the plugin or its documentation, please read our contribution guide.

Development and Installation

If you want to develop this plugin locally, clone the project and create a virtual environment (you can use Python 3.9, 3.10, or 3.11):

git clone https://github.com/u-gajera/Battery-Database.git
cd Battery-Database
python3.11 -m venv .pyenv
source .pyenv/bin/activate

Make sure to have pip upgraded:

pip install --upgrade pip

We recommend installing uv for fast package installation:

pip install uv

Install the plugin in editable mode with its development dependencies:

uv pip install -e '....

Run the Tests

You can run the tests locally:

pytest -sv tests

To generate a local coverage report:

uv pip install pytest-cov
pytest --cov=src tests

Auto-formatting

We use Ruff for linting and formatting the code.

ruff check .
ruff format .

Main Contributors Dr. Uday Gajera, uday.gajera@physik.hu-berlin.de

Current data source Data Source: https://doi.org/10.1038/s41597-020-00602-2

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

nomad_battery_database-1.0.0.tar.gz (1.9 MB view details)

Uploaded Source

Built Distribution

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

nomad_battery_database-1.0.0-py3-none-any.whl (17.2 kB view details)

Uploaded Python 3

File details

Details for the file nomad_battery_database-1.0.0.tar.gz.

File metadata

  • Download URL: nomad_battery_database-1.0.0.tar.gz
  • Upload date:
  • Size: 1.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for nomad_battery_database-1.0.0.tar.gz
Algorithm Hash digest
SHA256 a2691a132196931b7e9891900c84eefaa8addcc21c0d74dbe995bd10614cf91c
MD5 4a3c2c7b96ab4a0fef86c727e82e7dc0
BLAKE2b-256 025073c56bb8d9eeff0554cc1d8984db955192481e72bdd682510073e1d46031

See more details on using hashes here.

Provenance

The following attestation bundles were made for nomad_battery_database-1.0.0.tar.gz:

Publisher: python-publish.yml on FAIRmat-NFDI/nomad-battery-database

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nomad_battery_database-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for nomad_battery_database-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 691ee452762c33ad335b9fb6bc88230d2cd4cf06ae8cd3bf91ae9bba41b29454
MD5 b20fd88414262e6e7bc6e6ec154b0fcc
BLAKE2b-256 ef4cde16541ea61e2a48dcba2d8544f826883f6b143268d74fbd6dbe229d88d7

See more details on using hashes here.

Provenance

The following attestation bundles were made for nomad_battery_database-1.0.0-py3-none-any.whl:

Publisher: python-publish.yml on FAIRmat-NFDI/nomad-battery-database

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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