{ "cells": [ { "cell_type": "markdown", "id": "b7aa80ce-9d6e-401a-8870-a8a3e990b04a", "metadata": {}, "source": [ "## Imports" ] }, { "cell_type": "code", "execution_count": 89, "id": "5cc5b64f-cf09-43f8-a7a5-359301e9821c", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import scipy.optimize\n", "# from impedance.models.circuits import CustomCircuit\n", "# from impedance.visualization import plot_nyquist # Kept if you want to switch plotting methods\n", "\n", "import os\n", "from os import listdir\n", "from os.path import isfile, join\n" ] }, { "cell_type": "markdown", "id": "28ede9cb-3a55-4e31-9852-b8792e90c2d9", "metadata": {}, "source": [ "## Data Loading functions" ] }, { "cell_type": "code", "execution_count": 90, "id": "f38b45f4-cf5b-49d0-bc65-67489bec0a98", "metadata": {}, "outputs": [], "source": [ "# --- Data Loading ---\n", "def EIS_z60_import(filename):\n", " \"\"\" Import z60 file as pandas dataframe.\"\"\"\n", " df = pd.read_csv(\n", " filename,\n", " skiprows=11,\n", " sep=r'\\s+',\n", " header=None,\n", " names=[\"Freq\", \"Ampl\", \"Bias\", \"Time\", \"Z'\", \"Z''\", \"GD\", \"Err\", \"Range\"],\n", " index_col=\"Freq\")\n", "\n", " df = df.drop(columns=['Ampl', 'Bias', 'Time', 'GD', 'Err', 'Range']) # Drop columns\n", " mask = (df[\"Z'\"] > 0) & (df[\"Z''\"] < 0) # Only keep first quadrant in Nyquist plot\n", "\n", " df['Z'] = np.sqrt( (df[\"Z'\"].to_numpy())**2 + \\\n", " (df[\"Z'\"].to_numpy())**2 )\n", "\n", " df['theta'] = np.arctan2(-df[\"Z'\"].to_numpy(), df[\"Z''\"].to_numpy()) * 180 / np.pi\n", " \n", " df[~mask] = None\n", " return df" ] }, { "cell_type": "code", "execution_count": 91, "id": "7faff843-86d5-43a4-b68a-0e8aaa159065", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " | Z' | \n", "Z'' | \n", "Z | \n", "theta | \n", "
---|---|---|---|---|
Freq | \n", "\n", " | \n", " | \n", " | \n", " |
100000.000000 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
89051.300000 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
79301.400000 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
70618.900000 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
62887.000000 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
0.014616 | \n", "676330.0 | \n", "-564709.0 | \n", "9.564751e+05 | \n", "-129.860556 | \n", "
0.013016 | \n", "607638.0 | \n", "-414233.0 | \n", "8.593299e+05 | \n", "-124.282652 | \n", "
0.011591 | \n", "814114.0 | \n", "-698537.0 | \n", "1.151331e+06 | \n", "-130.630696 | \n", "
0.010322 | \n", "848202.0 | \n", "-689490.0 | \n", "1.199539e+06 | \n", "-129.107116 | \n", "
0.010000 | \n", "720312.0 | \n", "-1031530.0 | \n", "1.018675e+06 | \n", "-145.073605 | \n", "
140 rows × 4 columns
\n", "\n", " | \n", " | Z' | \n", "Z'' | \n", "Z | \n", "theta | \n", "
---|---|---|---|---|---|
Time | \n", "Freq | \n", "\n", " | \n", " | \n", " | \n", " |
0 | \n", "0.010000 | \n", "720312.0 | \n", "-1031530.00 | \n", "1.018675e+06 | \n", "-145.073605 | \n", "
0.010322 | \n", "848202.0 | \n", "-689490.00 | \n", "1.199539e+06 | \n", "-129.107116 | \n", "|
0.011591 | \n", "814114.0 | \n", "-698537.00 | \n", "1.151331e+06 | \n", "-130.630696 | \n", "|
0.013016 | \n", "607638.0 | \n", "-414233.00 | \n", "8.593299e+05 | \n", "-124.282652 | \n", "|
0.014616 | \n", "676330.0 | \n", "-564709.00 | \n", "9.564751e+05 | \n", "-129.860556 | \n", "|
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
26 | \n", "62887.000000 | \n", "170147.0 | \n", "-5666.63 | \n", "2.406242e+05 | \n", "-91.907492 | \n", "
70618.900000 | \n", "125131.0 | \n", "-26409.20 | \n", "1.769620e+05 | \n", "-101.917519 | \n", "|
79301.400000 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "|
89051.300000 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "|
100000.000000 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
1960 rows × 4 columns
\n", "\n", " | \n", " | Z' | \n", "Z'' | \n", "Z | \n", "theta | \n", "
---|---|---|---|---|---|
Time | \n", "Freq | \n", "\n", " | \n", " | \n", " | \n", " |
0 | \n", "0.010000 | \n", "798861.0 | \n", "-436871.0 | \n", "1.129760e+06 | \n", "-118.672809 | \n", "
0.010322 | \n", "870890.0 | \n", "-353106.0 | \n", "1.231624e+06 | \n", "-112.070300 | \n", "|
0.011591 | \n", "700737.0 | \n", "-637478.0 | \n", "9.909918e+05 | \n", "-132.293576 | \n", "|
0.013016 | \n", "635843.0 | \n", "-702820.0 | \n", "8.992178e+05 | \n", "-137.864277 | \n", "|
0.014616 | \n", "679839.0 | \n", "-543164.0 | \n", "9.614375e+05 | \n", "-128.623447 | \n", "|
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
26 | \n", "62887.000000 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
70618.900000 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "|
79301.400000 | \n", "319716.0 | \n", "-63722.3 | \n", "4.521467e+05 | \n", "-101.271863 | \n", "|
89051.300000 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "|
100000.000000 | \n", "96997.8 | \n", "-139224.0 | \n", "1.371756e+05 | \n", "-145.134952 | \n", "
1960 rows × 4 columns
\n", "