Skip to main content

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

Overview

permittivitycalc is a Python package made to take S-parameter data output from METAS VNA Tools II (https://www.metas.ch/vnatools) 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.

Usage

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

Installation

Requirements

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 setup.py install

Contributors

permittivitycalc was developed with the aid of these contributors.

References

[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. http://doi.org/10.6028/NIST.TN.1355r

[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. http://doi.org/10.1109/22.552032

[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. http://doi.org/10.1016/j.asr.2016.08.011

[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. http://doi.org/10.1109/TIM.1970.4313932

[Weir1974]

Weir, W. B. (1974). Automatic Measurement of Complex Dielectric Constant and Permeability at Microwave Frequencies. Proceedings of the IEEE, 62(1), 33–36. http://doi.org/10.1109/PROC.1974.9382

Metadata

Release files for permittivitycalc 0.6.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for permittivitycalc 0.6.1
File Size Uploaded
permittivitycalc-0.6.1.tar.gz 157.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for permittivitycalc 0.6.1
File Interpreter ABI Platform
permittivitycalc-0.6.1-py3-none-any.whl Python 3 none any Details

Total release size: 317.4 kB

Release files / permittivitycalc-0.6.1.tar.gz

Download URL permittivitycalc-0.6.1.tar.gz
Size 157.5 kB
Tags Source
SHA-256 checksum
How to use checksums
acc706ae36b1a2c138c94518d1c9aa622bf4a935c1c319b135206d81c81a3ceb
BLAKE2b-256 checksum
How to use checksums
d2acaf5a34f01a63bb3fd640b7a5cc1d6dacd669d087d797f8e18e815d3f1d7b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1.post20200604 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.7.7

Release files / permittivitycalc-0.6.1-py3-none-any.whl

Download URL permittivitycalc-0.6.1-py3-none-any.whl
Size 159.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5c188514046475f6545dee30ad603331a1bc2fd24b295892958518e5d6b56b50
BLAKE2b-256 checksum
How to use checksums
3da80d9a41c69a63d986fe92ba6e06c02454fb8d8a11f98a585d15c0556e2bc8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1.post20200604 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.7.7

Release history Release notifications | RSS feed

This release

0.6.1 This release

2 release files

0.6.0

2 release files

0.5

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.8

2 release files

0.3.7

2 release files

0.3

2 release files

0.2.1

2 release files

0.2

2 release files

0.1.7

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page