Skip to content

JuMaD/qmDataWrangling

Repository files navigation

qMem DataWranglering

This is a collection of scripts to help with data wrangling of files generated by the "QMem" measurement software.

Initial Data Processing

The main functionality is provided by WranglingFiles.py, that processes the output of the QMem measurement software into readable, and Origin ® compatible *.csv files and generates matplotlib graphs to quickly visually analyze data. Odd and even sweep numbers are treated seperately to account for hysteretic or memristive effects.

The script also provides the following calculation fucntions:

  • 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"

Aggreate Results

After initial processing, AggregateResults.py provides a convenicence function to aggregate all mean values within a folder. It returns one csv file for odd and even sweeps each and names columns according to device size and measurement ID.

Display results in Origin

The folder OriginProcessing provides two importfilter and one origin design file: One import filter to import the results from initial processing and one import filter for stats files (with automatic changing of column types). The origin design files provides a design typically used in qMem publications.

About

Data wrangling & common calculations for results from qMem measurement software

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages