Skip to main content

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

Project description

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

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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file permittivitycalc-0.6.1.tar.gz.

File metadata

  • Download URL: permittivitycalc-0.6.1.tar.gz
  • Upload date:
  • Size: 157.5 kB
  • Tags: Source
  • Uploaded using 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

File hashes

Hashes for permittivitycalc-0.6.1.tar.gz
Algorithm Hash digest
SHA256 acc706ae36b1a2c138c94518d1c9aa622bf4a935c1c319b135206d81c81a3ceb
MD5 3b5ccc356434cb08d43b3b248cafcf9e
BLAKE2b-256 d2acaf5a34f01a63bb3fd640b7a5cc1d6dacd669d087d797f8e18e815d3f1d7b

See more details on using hashes here.

File details

Details for the file permittivitycalc-0.6.1-py3-none-any.whl.

File metadata

  • Download URL: permittivitycalc-0.6.1-py3-none-any.whl
  • Upload date:
  • Size: 159.9 kB
  • Tags: Python 3
  • Uploaded using 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

File hashes

Hashes for permittivitycalc-0.6.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5c188514046475f6545dee30ad603331a1bc2fd24b295892958518e5d6b56b50
MD5 bf5d915097cba8166dc8549b1e01afb9
BLAKE2b-256 3da80d9a41c69a63d986fe92ba6e06c02454fb8d8a11f98a585d15c0556e2bc8

See more details on using hashes here.

Supported by

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