Skip to main content

Scripts to calculate and plot the complex permittivity from S-parameter data

Project description

Continuous Integration

Code Coverage

PyPI Package



TravisCI Appveyor



Documentation Status


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-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.


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.


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.


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.


Weir, W. B. (1974). Automatic Measurement of Complex Dielectric Constant and Permeability at Microwave Frequencies. Proceedings of the IEEE, 62(1), 33–36.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

permittivitycalc-0.6.1.tar.gz (157.5 kB view hashes)

Uploaded source

Built Distribution

permittivitycalc-0.6.1-py3-none-any.whl (159.9 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page