Skip to main content

a Python library to work with the echemdb repository

Project description

Binder DOI

The echemdb Python package can 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

Install the latest stable version of echemdb from PyPI or conda.

pip install echemdb
conda install -c conda-forge echemdb

Python API

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

>>> from echemdb.cv.cv_database import CVDatabase
>>> 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.6.0.tar.gz (27.4 kB view details)

Uploaded Source

Built Distribution

echemdb-0.6.0-py3-none-any.whl (33.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: echemdb-0.6.0.tar.gz
  • Upload date:
  • Size: 27.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.9

File hashes

Hashes for echemdb-0.6.0.tar.gz
Algorithm Hash digest
SHA256 f83c63d3292aa302c00d8cf983e149926142b82146d69332d88d61f1e404df75
MD5 abd415d382b6181997939a64d6052c29
BLAKE2b-256 50cdb6f10c82fd0a4bf4e052230fa4360a1d60c00bb2680457983c8f38dd2e2a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: echemdb-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 33.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.9

File hashes

Hashes for echemdb-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7ef5df802fea984839ddd73cacc70bcb42607586d884024b4c5c62d8545623b6
MD5 1c3408a524038de560cf0ecb6954955a
BLAKE2b-256 b5459fe874c8cad71651c944d7b7884c5593b47c1204ba96b78053e539169399

See more details on using hashes here.

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