Home · Install · Docs · Source · Support · Users · About



scikit-rf (aka skrf) is an Open Source, BSD-licensed package for RF/Microwave engineering implemented in the Python programming language. It provides a modern, object-oriented library for network analysis and calibration which is both flexible and scalable. See some of the features below and check out the Documentation for a more in-depth look at scikit-rf.

Getting Started

Plot touchstone data on a smith chart, in 3 lines.

import skrf as rf
ntwk = rf.Network('ring slot.s2p')

For more information, tutorials, and

examples, see the Documentation

Some Examples


  • Microwave Network Operations:
    • Read/Write touchstone (.s2p, s?p) files
    • Arithmetic operations on scattering parameters
    • Cascade/De-embed 2-port networks
    • Frequency and port slicing and concatenation.
    • Connect n-port networks
    • s/z/y/abcd/t - parameter conversion
  • Sets of Networks:
    • Statistical properties of NetworkSets
    • Methods to sort and visualize set behavior
  • GUI support through qtapps
    • modular, re-useable apps
    • supports data retrieval, plotting, calibration and more.
  • Plotting abilities:
    • Rectangular Plots ( dB, mag, Phase, group delay)
    • Smith Chart
    • Automated Uncertainty bounds
  • Offline Calibration:
    • One-Port: SOL, Least Squares, SDDL
    • Two-Port: TRL, Multiline TRL, SOLT, Unknown Thru, 8/16-Term
    • Partial : Enhanced Response, One-Port Two-Path
  • Virtual Instruments (completeness varies by model)
    • VNAs: PNA, PNAX, ZVA, HP8510, HP8720
    • SA: HP8500
    • Others: ESP300
  • Transmission Line Physics:
    • Coax, CPW, Freespace, RectangularWaveguide, DistributedCircuit


  • For questions about usage, suggestions, general feedback please see the Mailing List
  • If you find a problem in scikit-rf, please post an issue to the Issue Tracker
  • Still need help? Contact me at alexanderarsenovic at gmail.com