Continuous Integration Code Coverage PyPI Package Docs Citation
TravisCI Appveyor Codecov PyPiBadge Documentation Status DOIBadge

Scripts to calculate and plot the complex permittivity (and permeability) from S-parameter data acquired from transmission-line measurements


permittivitycalc is a Python package made to take S-parameter data output from METAS VNA Tools II ( and process it to determine and plot the complex electric permittivity (and magnetic permeability) of a material measured in a coaxial transmission line.

Two analytical calculation methiods are currently implemented:

  • The New Non-iterative Method for permittivity calculation from S-parameters from [Boughriet1997] which assumes that the material is non-magnetic (i.e. mu = 1).
  • The Nicholson-Ross-Weir method to calculate the complex permittivity and permeability of a sample. This method, however, is unstable at multiples of one-half wavelength in the sample [NicolsonRoss1970] [Weir1974].

permittivitycalc can also use MCMC-based Bayesian model fitting/parameter estimation to fit Cole-Cole type models directly to the measured S-parameters to determine the frequency-dependant complex permittivity (and permeability, if desired). Cole-Cole models support multiple relaxation poles as well as a conductivity term.

You can use permittivitycalc to:

  • Input and plot raw S-parameter data in tabular form with or without uncertainties.
  • Calculate and plot the complex permittivity with full propagation of uncertainties.
  • Perform connector de-embedding on the raw S-parameters to extract the sample S-parameters, if necessary. Example: de-embedding washers used to cap the transmission line when measuring powdered samples.
  • Correct for the boundary effect in the transmission line when measuring powdered samples after [Hickson2017].
  • Correct for the air gap when measuring solid samples after [Baker-Jarvis1993].
  • Plot data from multiple measurements together for comparison.
  • Model measured S-parameters directly with a Cole-Cole model using MCMC-based Bayesian model fitting.


For usage examples and a walkthrough on how to use permittivitycalc, see the Docs



permittivitycalc was written for Python 3 and tested on the following versions of Python:

  • 3.6
  • 3.7

permittivitycalc uses the following packages:

  • tkinter
  • numpy
  • uncertainties
  • scipy
  • matplotlib
  • seaborn
  • cycler
  • lmfit
  • emcee
  • corner

Installing Anaconda

We recommend using Anaconda to manage your Python environments.

  1. Install Anaconda.

  2. Open a terminal window and create a conda virtual environment (name it anything you like, and set the python version to a compatible version in Requirements):

    conda create --name your_env_name anaconda python=3.7
  3. Activate the environment:

    conda activate your_env_name

Quick Install

Install permittivitycalc with pip:

pip install permittivitycalc

Manual Install

  1. (Optional) Fork permittivitycalc on Github

  2. Clone or download the repository.

  3. Navigate to the permittivitycalc root directory and install with:

    python install


permittivitycalc was developed with the aid of these contributors.


[Baker-Jarvis1993]Baker-Jarvis, J., Janezic, M. D., Grosvenor Jr, J. H., & Geyer, R. G. (1993). Transmission/reflection and short-circuit line methods for measuring permittivity and permeability. NIST Technical Note 1355-R. Boulder, CO.
[Boughriet1997]Boughriet, A. H., Legrand, C., & Chapoton, A. (1997). Noniterative stable transmission/reflection method for low-loss material complex permittivity determination. IEEE Transactions on Microwave Theory and Techniques, 45(1), 52–57.
[Hickson2017]Hickson, D., Sotodeh, S., Daly, M. G., Ghent, R., & Nolan, M. C. (2017). Improvements on effective permittivity measurements of powdered alumina: Implications for bulk permittivity properties of asteroid regoliths. Advances in Space Research, 59(1), 472–482.
[NicolsonRoss1970]Nicolson, A. M., & Ross, G. F. (1970). Measurement of the Intrinsic Properties of Materials by Time-Domain Techniques. IEEE Transactions on Instrumentation and Measurement, 19(4), 377–382.
[Weir1974]Weir, W. B. (1974). Automatic Measurement of Complex Dielectric Constant and Permeability at Microwave Frequencies. Proceedings of the IEEE, 62(1), 33–36.

Indices and tables