Giter Site home page Giter Site logo

pyoer20's Introduction

pyOER20

Data and analysis for Scott and Rao et al, 2021

This repository has gotten the data analysis etc for the DTU-MIT RuO2 project organized and under version control. It will also be used to open-source the data and analysis when we publish.

The core code is organized int a python package pyOER, the modules of which are in src/pyOER. This package must be added to your python path for other parts to run.

The package uses EC_MS, and has served to develop ideas for ixdat. ixdat has already replaced EC_MS for new projects, and has a database interface under development which wil facilitate future large projects.

This repository may eventually be redone using ixdat if there is future interest.

Setup

Install EC_MS v 0.7.5 or above using:

pip install --upgrade EC-MS

At present, a settings.py file is required to indicate the location of raw data (which is not yet publically available) Create src/pyOER/settings.py and copy the following to it:

from pathlib import Path

# Change below path to match the path to the shared folder of your project.
# DATA_DIR = Path("/absolute/path/to/your/shared/project-folder/")
DATA_DIR = Path(r"C:\Users\scott\Dropbox\WORKSPACES\DTU-MIT RuO2")

Change the DATA_DIR to the location of the project with the data files as it is called on your computer.

Figures

This folder includes the scripts needed to make the figures in the manuscripts, which are in preparation. Each script uses data in the database (see below) and the pyOER package, and produces as .png and .svg the figures as they are in the publication (minus some annotations which are added later in Inkscape)

These scripts are full of comments in order to serve as tutorials on the use of pyOER and the database.

The figures themselves will be added when the works are published, and this README will be updated with a brief description of each figure script, like here: https://github.com/ScottSoren/pyCOox_public.

Database

The relational database is represented in tables/ . Each subfolder of table/ acts as a database table, with each .json file acts as a row. The .json files can be opened with any text editor (e.g. Notepad) for ease of use. Each table corresponds to a class in pyOER, and each row corresponds to an object of that class.

The tables include but are not limited to:

  • measurements. A measurement is a collection of metadata about a single EC, MS or EC-MS measurement.

It includes a pointer to any notes taken during the measurement (elog table), as well as the raw data file. pyOER is lazy in that raw data is not loaded by the measurement object until it is needed, saving RAM.

  • icpms. An row in this table represents a single ICPMS measurement, with the counts and metadata

including which element was measured, which ICPMS calibration it corresponds to, which measurement the electrolyte sample was taken during (measurement table) and when in that measurement.

  • experiments. An experiment contains the additional metadata needed to do a standard analysis of

a measurement (measurements table) to extract results such as activity, faradaic efficiency, lattice oxygen evolution rate, and dissolution rates. The additional metadata can include references to where in the measurement or elsewhere to read the calibration of the O2 signal at m/z=32 and the 16O/18O isotopic ratio in the electrolyte

  • tofs. A row in this table represents a result, which is a rate of oxygen evolution, lattice oxygen evolution,

or dissolution. It also includes a capacitance value for normalization to number of sites (thus the name of the table, for turn-over frequency). Each row also includes all the metadata used to derive the result - most importantly a pointer to the corresponding experiment (experiment table) and the timespan during that experiment for which the rate applies.

  • elog. A row in this table includes an entry in the electronic lab notebook. They contain metadata and the

some of the experimenter's thoughts during the measurement, and can be useful if a specific measurement seems hard to interpret.

The tables were populated semi-automatically using the scripts in data_processing/

Raw data is at present available only to the authors via a dropbox folder. It will be made publically available upon publication.

pyoer20's People

Contributors

scottsoren avatar ejler avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.