Skip to main content

a Python library to work with the echemdb repository

Project description

Binder DOI

The echemdb repository contains high quality experimental and theoretical data on electrochemical systems.

This echemdb module provides a Python library to interact with a database of frictionless datapackages containing electrochemical data following echemdb's metadata schema. Such a database can be generated from the data on echemdb.org or from local files.

Detailed installation instructions, description of the modules, advanced usage examples, including local database creation, are provided in our documentation.

Installation instructions

pip install echemdb

Python API

The currently available data shown on echemdb.org can be downloaded and stored in a database.

>>> from echemdb.cv.database import Database
>>> db = Database()

Filtering the database for entries having specific properties, e.g., containing Pt as working electrode material, returns a new database.

>>> db_filtered = db.filter(lambda entry: entry.system.electrodes.working_electrode.material == 'Pt')

A single entry can be retrieved with the identifiers provided on the website (see for example engstfeld_2018_polycrystalline_17743_f4b_1)

>>> entry = db['engstfeld_2018_polycrystalline_17743_f4b_1']

Each entry has a set of descriptors such as its source or the electrochemical system.

>>> entry.source # or entry['source']
{'citation key': 'engstfeld_2018_polycrystalline_17743', 'curve': 1, 'url': 'https://doi.org/10.1002/chem.201803418', 'figure': '4b', 'version': 1}

The data related to an entry can be returned as a pandas dataframe (values are provided in SI units).

>>> entry.df
           t	        E	       j
0	0.000000	-0.196962	0.043009
1	0.011368	-0.196393	0.051408
...

The dataframe can be returned with custom or original figure axes' units by rescaling the entry.

>>> entry.rescale({'E' : 'mV', 'j' : 'uA / m2'}).df
          t           E             j
0  0.000000 -196.961730  43008.842162
1  0.011368 -196.393321  51408.199892
...
>>> entry.rescale('original').df
          t         E         j
0  0.000000 -0.196962  4.300884
1  0.011368 -0.196393  5.140820
...

The units and reference electrodes can be found in the resource schema. The units are updated upon rescaling an entry.

>>> entry.package.get_resource('echemdb')['schema']
{'fields': 
[{'name': 't', 'unit': 's', 'type': 'number'}, 
{'name': 'E', 'unit': 'V', 'reference': 'RHE', 'type': 'number'}, 
{'name': 'j', 'unit': 'A / m2', 'type': 'number'}]}

The data can be visualized in a plotly figure:

>>> entry.plot()

License

The contents of this repository are licensed under the GNU General Public License v3.0 or, at your option, any later version.

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

echemdb-0.3.0.tar.gz (26.0 kB view details)

Uploaded Source

Built Distribution

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

echemdb-0.3.0-py3-none-any.whl (28.9 kB view details)

Uploaded Python 3

File details

Details for the file echemdb-0.3.0.tar.gz.

File metadata

  • Download URL: echemdb-0.3.0.tar.gz
  • Upload date:
  • Size: 26.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/0.0.0 pkginfo/1.8.2 readme-renderer/27.0 requests/2.27.0 requests-toolbelt/0.9.1 urllib3/1.26.7 tqdm/4.63.0 importlib-metadata/4.11.3 keyring/23.4.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.10.2

File hashes

Hashes for echemdb-0.3.0.tar.gz
Algorithm Hash digest
SHA256 18bb3072912d2a8b726405cf58169a18668d4aad12d0c105c0fa276706c3c1a0
MD5 fcbaef2570cf9816c499a247d5629b96
BLAKE2b-256 f6d7b278fc62687e965b18f38c096bc9feeeac4a25ae271fabda90d730024f77

See more details on using hashes here.

File details

Details for the file echemdb-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: echemdb-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 28.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/0.0.0 pkginfo/1.8.2 readme-renderer/27.0 requests/2.27.0 requests-toolbelt/0.9.1 urllib3/1.26.7 tqdm/4.63.0 importlib-metadata/4.11.3 keyring/23.4.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.10.2

File hashes

Hashes for echemdb-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 19fac6b521d3f6e5398769dff4bd898fd37c4e8cd56ba65982288464700bc994
MD5 b26fba483c5a129934d6198ee762fc56
BLAKE2b-256 b97a6086e9e51bbe12219d74a35fa66e07a21482fe97a96528e042b13ff635c3

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