Data wrangling & common calculations for results from qMem measurement software

Overview

qMem Datawrangler

This script processes output of qMem measurement software into an Origin ® compatible *.csv files and matplotlib graphs to quickly visualy analyze data. Odd and even sweep numbers are treated seperately to account for hysteretic or memristive effects.

It also performs the following calculations:

  • Absolute values of current / current density (for semi-log plots)
  • Memory window (the ratio between the absolute values of odd and even sweeps)
  • Differential resistance
  • Fowler-Nordheim with variable exponent
  • Normalized differential resistance (NDR)
  • Statistics on all measured and calculated data (min, max, avg)

Parameters

Calculations made and plots generated by this script are controlled via the config.ini file within the same folder as the main script. The following Parameters can be set:

section parameter type explanation
Directory home_directory Bool The directory where all folders with data can be found.\Will automatically change to last one used and leaving it empty will set it to root
Parameters filter string The column that is evaluated from the file. Could be "Current [A]" or "Current Density"
Parameters resistance_slice double The value at which the differential resistance calculation is displayed
Parameters resistance_range double The size of the window used to perform linear fits of data to to calculate the differential resistance
Parameters mem_method string The method of how the memory window is calculated. Either "divide" if currents have to be devided (standard method) ord "substract" if currents should be subtracted.
Parameters start_index integer The first sweep that is used for calculations. "2" ignores the first sweep that often shows "burn-in" effects
Calculate absolute bool Parameter that sets whether or not the absolute value of currents is calculated (required "True" for semi-log plots, "False" for further Tunneling model processing)
Calculate stats bool Parameter that sets whether or not the sweep-to-sweep statistics are calculated.
Calculate fowler-nordheim bool Parameter that sets whether or not fowler_nordheim calculations should be performed (i.e. a dataset with ln(J/V)^2 vs J/V)
Calculate memory_window bool Parameter that sets whether or not the memory window should be calculated
Calculate differential_resistance bool Parameter that sets whether or not the normalized differential resistance should be calculated
Plot currents bool Parameter that sets whether or not I-V or J-V Data from all sweeps should be plotted
Plot stats bool Parameter that sets whether or not I-V or J-V min,max and average Data should be plotted
Plot currents bool Parameter that sets whether or not Fowler Nordheim Plots should be generated.
Plot currents bool Parameter that sets whether or not the memory window vs voltage plots should be generated.
Plot currents bool Parameter that sets whether or not the differential resistance vs voltage plots should be generated
Plot currents bool Parameter that sets whether or not the resistance slice and resulting fit should be displayed

Files Generated

After processing, csv files are generated and suffixes according to their content are added:

  • *_header: The header extracted from the measurement file - including all measurement parameters (e.g. step size, operator, material ID, ..)
  • *_all: File with all sweeps or *_stats: File with only the statistical analysis of all sweeps
  • *-abs: indicating that only absolute J or I values are recorded
  • *_Current _[A] or _Current-density: Indicating either current or current density within the file
  • *_fn: Results from Fowler Nordheim calculations (including V-->1/V at x-Position)
  • *_mwindow _ {method} where {method} is either "divide" or "subtract"
Owner
Julian
Julian
In the works, creating a new Chess Board and way to Play...

sWJz4Chess date started on github.com 11-13-2021 In the works, creating a new Chess Board and way to Play... starting to write this in Pygame, any ind

Shawn 2 Nov 18, 2021
Use `forge` and `cast` commands in Python scripts

foundrycli.py ( 🔥 , 🐍 ) foundrycli.py is a Python library I've made for personal use; now open source. It lets you access forge and cast CLIs from P

Zero Ekkusu 17 Jul 17, 2022
Datamol is a python library to work with molecules.

Datamol is a python library to work with molecules. It's a layer built on top of RDKit and aims to be as light as possible.

datamol 276 Dec 19, 2022
PressurePlate is a multi-agent environment that requires agents to cooperate during the traversal of a gridworld.

PressurePlate is a multi-agent environment that requires agents to cooperate during the traversal of a gridworld. The grid is partitioned into several rooms, and each room contains a plate and a clos

Autonomous Agents Research Group (University of Edinburgh) 6 Dec 03, 2022
run-js Goal: The Easiest Way to Run JavaScript in Python

run-js Goal: The Easiest Way to Run JavaScript in Python features Stateless Async JS Functions No Intermediary Files Functional Programming CommonJS a

Daniel J. Dufour 9 Aug 16, 2022
The Google Assistant on a rotary phone

Google Assistant Rotary Phone Shoutout to my dad who had this idea a year ago and I'm only now getting around to doing it. Notes This is the code used

rydercalmdown 10 Nov 04, 2022
Small scripts to learn about GNOME internals

gnome-hacks This is a collection of APIs that allow programmatic manipulation of the GNOME shell. If you use GNOME (the default graphical shell in Ubu

Alex Nichol 5 Oct 22, 2021
A tool to determine optimal projects for Gridcoin crunchers. Maximize your magnitude!

FindTheMag FindTheMag helps optimize your BOINC client for Gridcoin mining. You can group BOINC projects into two groups: "preferred" projects and "mi

7 Oct 04, 2022
Python3 Interface to numa Linux library

py-libnuma is python3 interface to numa Linux library so that you can set task affinity and memory affinity in python level for your process which can help you to improve your code's performence.

Dalong 13 Nov 10, 2022
Broken Link Finder is a Burp Extension to detect broken links for a passive scanning domains and links.

Broken Link Finder Broken Link Finder is a Burp Extension to detect broken links for a passive scanning domains and links. Inspired by InitRoot's link

Red Section 10 Sep 11, 2021
CaskDB is a disk-based, embedded, persistent, key-value store based on the Riak's bitcask paper, written in Python.

CaskDB - Disk based Log Structured Hash Table Store CaskDB is a disk-based, embedded, persistent, key-value store based on the Riak's bitcask paper, w

886 Dec 27, 2022
PaintPrint - This module can colorize any text in your terminal

PaintPrint This module can colorize any text in your terminal Author: tankalxat3

Alexander Podstrechnyy 2 Feb 17, 2022
Got-book-6 - LSTM trained on the first five ASOIAF/GOT books

GOT Book 6 Generator Are you tired of waiting for the next GOT book to come out? I know that I am, which is why I decided to train a RNN on the first

Zack Thoutt 974 Oct 27, 2022
JHBuild is a tool designed to ease building collections of source packages, called “modules”.

JHBuild README JHBuild is a tool designed to ease building collections of source packages, called “modules”. JHBuild was originally written for buildi

GNOME Github Mirror 46 Nov 22, 2022
An execution framework for systematic strategies

WAGMI is an execution framework for systematic strategies. It is very much a work in progress, please don't expect it to work! Architecture The Django

Rich Atkinson 10 Mar 28, 2022
This repository holds those infrastructure-level modules, that every application requires that follows the core 12-factor principles.

py-12f-common About This repository holds those infrastructure-level modules, that every application requires that follows the core 12-factor principl

Tamás Benke 1 Dec 15, 2022
Hspice-Wave-Generator is a tool used to quickly generate stimuli souces of hspice format

Hspice-Wave-Generator is a tool used to quickly generate stimuli souces of hspice format. All the stimuli sources are based on `pwl` function of HSPICE and the specific complex operations of writing

3 Aug 02, 2022
A set of scripts for a two-step procedure to measure the value of access to destinations across several modes of travel within a geographic area.

A set of scripts for a two-step procedure to measure the value of access to destinations across several modes of travel within a geographic area.

Institute for Transportation and Development Policy 2 Oct 16, 2022
Ellipitical Curve Table Generator

Ellipitical-Curve-Table-Generator This script generates a table of elliptical po

Nishaant Goswamy 1 Jan 02, 2022
适用于HoshinoBot下的人生重来模拟器插件

LifeRestart for HoshinoBot 原作地址 python版原地址 本项目地址 安装方法 这是一个HoshinoBot的人生重来模拟器插件 这个项目使用的HoshinoBot的消息触发器,如果你了解其他机器人框架的api(比如nonebot)可以只修改消息触发器就将本项目移植到其他

黛笙笙 16 Sep 03, 2022