NanoVNASaver package¶
Subpackages¶
- NanoVNASaver.Analysis package
- Submodules
- NanoVNASaver.Analysis.AntennaAnalysis module
- NanoVNASaver.Analysis.BandPassAnalysis module
- NanoVNASaver.Analysis.BandStopAnalysis module
- NanoVNASaver.Analysis.Base module
- NanoVNASaver.Analysis.EFHWAnalysis module
- NanoVNASaver.Analysis.HighPassAnalysis module
- NanoVNASaver.Analysis.LowPassAnalysis module
- NanoVNASaver.Analysis.PeakSearchAnalysis module
- NanoVNASaver.Analysis.ResonanceAnalysis module
- NanoVNASaver.Analysis.SimplePeakSearchAnalysis module
- NanoVNASaver.Analysis.VSWRAnalysis module
- Module contents
- NanoVNASaver.Charts package
- Submodules
- NanoVNASaver.Charts.CLogMag module
- NanoVNASaver.Charts.Capacitance module
- NanoVNASaver.Charts.Chart module
ChartChart.addSWRMarker()Chart.bandsChart.clearSWRMarkers()Chart.colorChart.copy()Chart.drawMarker()Chart.drawTitle()Chart.getActiveMarker()Chart.getNearestMarker()Chart.getPosition()Chart.mousePressEvent()Chart.mouseReleaseEvent()Chart.popoutRequestedChart.removeSWRMarker()Chart.resetReference()Chart.saveScreenshot()Chart.setBands()Chart.setData()Chart.setDrawLines()Chart.setLineThickness()Chart.setMarkerSize()Chart.setMarkers()Chart.setPointSize()Chart.setReference()Chart.setSweepTitle()Chart.update()Chart.wheelEvent()Chart.zoomTo()
ChartColorsChartDimensionsChartDragBoxChartFlagsChartMarker
- NanoVNASaver.Charts.Frequency module
FrequencyChartFrequencyChart.contextMenuEvent()FrequencyChart.copy()FrequencyChart.drawBands()FrequencyChart.drawChart()FrequencyChart.drawData()FrequencyChart.drawDragbog()FrequencyChart.drawFrequencyTicks()FrequencyChart.drawMarkers()FrequencyChart.drawValues()FrequencyChart.frequencyAtPosition()FrequencyChart.getPlotable()FrequencyChart.getXPosition()FrequencyChart.getYPosition()FrequencyChart.isPlotable()FrequencyChart.keyPressEvent()FrequencyChart.logarithmicYAllowed()FrequencyChart.mouseMoveEvent()FrequencyChart.paintEvent()FrequencyChart.resetDisplayLimits()FrequencyChart.resizeEvent()FrequencyChart.setFixedSpan()FrequencyChart.setFixedValues()FrequencyChart.setLogarithmicX()FrequencyChart.setLogarithmicY()FrequencyChart.setMaximumFrequency()FrequencyChart.setMaximumValue()FrequencyChart.setMinimumFrequency()FrequencyChart.setMinimumValue()FrequencyChart.valueAtPosition()FrequencyChart.zoomTo()
- NanoVNASaver.Charts.GroupDelay module
GroupDelayChartGroupDelayChart.calc_data()GroupDelayChart.calculateGroupDelay()GroupDelayChart.copy()GroupDelayChart.drawValues()GroupDelayChart.draw_data()GroupDelayChart.getYPosition()GroupDelayChart.getYPositionFromDelay()GroupDelayChart.setData()GroupDelayChart.setReference()GroupDelayChart.valueAtPosition()
- NanoVNASaver.Charts.Inductance module
- NanoVNASaver.Charts.LogMag module
- NanoVNASaver.Charts.Magnitude module
- NanoVNASaver.Charts.MagnitudeZ module
- NanoVNASaver.Charts.MagnitudeZSeries module
- NanoVNASaver.Charts.MagnitudeZShunt module
- NanoVNASaver.Charts.Permeability module
- NanoVNASaver.Charts.Phase module
- NanoVNASaver.Charts.Polar module
- NanoVNASaver.Charts.QFactor module
- NanoVNASaver.Charts.RI module
RealImaginaryChartRealImaginaryChart.contextMenuEvent()RealImaginaryChart.copy()RealImaginaryChart.drawHorizontalTicks()RealImaginaryChart.drawValues()RealImaginaryChart.find_scaling()RealImaginaryChart.getImYPosition()RealImaginaryChart.getNearestMarker()RealImaginaryChart.getReYPosition()RealImaginaryChart.imag_scaling_constraints()RealImaginaryChart.setFixedValues()RealImaginaryChart.setMaximumImagValue()RealImaginaryChart.setMaximumRealValue()RealImaginaryChart.setMinimumImagValue()RealImaginaryChart.setMinimumRealValue()RealImaginaryChart.value()RealImaginaryChart.valueAtPosition()RealImaginaryChart.zoomTo()
- NanoVNASaver.Charts.RIMu module
- NanoVNASaver.Charts.RIZ module
- NanoVNASaver.Charts.RIZSeries module
- NanoVNASaver.Charts.RIZShunt module
- NanoVNASaver.Charts.SParam module
- NanoVNASaver.Charts.Smith module
- NanoVNASaver.Charts.Square module
- NanoVNASaver.Charts.TDR module
TDRChartTDRChart.contextMenuEvent()TDRChart.copy()TDRChart.fixedSpanTDRChart.fixedValuesTDRChart.isPlotable()TDRChart.lengthAtPosition()TDRChart.markerLocationTDRChart.maxDisplayLengthTDRChart.maxImpedanceTDRChart.minDisplayLengthTDRChart.minImpedanceTDRChart.mouseMoveEvent()TDRChart.paintEvent()TDRChart.resetDisplayLimits()TDRChart.resizeEvent()TDRChart.setFixedSpan()TDRChart.setFixedValues()TDRChart.setMaximumImpedance()TDRChart.setMaximumLength()TDRChart.setMinimumImpedance()TDRChart.setMinimumLength()TDRChart.valueAtPosition()TDRChart.zoomTo()
- NanoVNASaver.Charts.VSWR module
- Module contents
CapacitanceChartChartChart.addSWRMarker()Chart.bandsChart.clearSWRMarkers()Chart.colorChart.copy()Chart.dataChart.drawMarker()Chart.drawTitle()Chart.getActiveMarker()Chart.getNearestMarker()Chart.getPosition()Chart.markersChart.mousePressEvent()Chart.mouseReleaseEvent()Chart.popoutRequestedChart.referenceChart.removeSWRMarker()Chart.resetReference()Chart.saveScreenshot()Chart.setBands()Chart.setData()Chart.setDrawLines()Chart.setLineThickness()Chart.setMarkerSize()Chart.setMarkers()Chart.setPointSize()Chart.setReference()Chart.setSweepTitle()Chart.swrMarkersChart.update()Chart.wheelEvent()Chart.zoomTo()
CombinedLogMagChartFrequencyChartFrequencyChart.contextMenuEvent()FrequencyChart.copy()FrequencyChart.drawBands()FrequencyChart.drawChart()FrequencyChart.drawData()FrequencyChart.drawDragbog()FrequencyChart.drawFrequencyTicks()FrequencyChart.drawMarkers()FrequencyChart.drawValues()FrequencyChart.frequencyAtPosition()FrequencyChart.getPlotable()FrequencyChart.getXPosition()FrequencyChart.getYPosition()FrequencyChart.isPlotable()FrequencyChart.keyPressEvent()FrequencyChart.logarithmicYAllowed()FrequencyChart.mouseMoveEvent()FrequencyChart.paintEvent()FrequencyChart.resetDisplayLimits()FrequencyChart.resizeEvent()FrequencyChart.setFixedSpan()FrequencyChart.setFixedValues()FrequencyChart.setLogarithmicX()FrequencyChart.setLogarithmicY()FrequencyChart.setMaximumFrequency()FrequencyChart.setMaximumValue()FrequencyChart.setMinimumFrequency()FrequencyChart.setMinimumValue()FrequencyChart.valueAtPosition()FrequencyChart.zoomTo()
GroupDelayChartGroupDelayChart.calc_data()GroupDelayChart.calculateGroupDelay()GroupDelayChart.copy()GroupDelayChart.drawValues()GroupDelayChart.draw_data()GroupDelayChart.getYPosition()GroupDelayChart.getYPositionFromDelay()GroupDelayChart.setData()GroupDelayChart.setReference()GroupDelayChart.valueAtPosition()
InductanceChartLogMagChartMagnitudeChartMagnitudeZChartMagnitudeZSeriesChartMagnitudeZShuntChartPermeabilityChartPhaseChartPolarChartQualityFactorChartRealImaginaryChartRealImaginaryChart.contextMenuEvent()RealImaginaryChart.copy()RealImaginaryChart.drawHorizontalTicks()RealImaginaryChart.drawValues()RealImaginaryChart.find_scaling()RealImaginaryChart.getImYPosition()RealImaginaryChart.getNearestMarker()RealImaginaryChart.getReYPosition()RealImaginaryChart.imag_scaling_constraints()RealImaginaryChart.setFixedValues()RealImaginaryChart.setMaximumImagValue()RealImaginaryChart.setMaximumRealValue()RealImaginaryChart.setMinimumImagValue()RealImaginaryChart.setMinimumRealValue()RealImaginaryChart.value()RealImaginaryChart.valueAtPosition()RealImaginaryChart.zoomTo()
RealImaginaryMuChartRealImaginaryZChartRealImaginaryZSeriesChartRealImaginaryZShuntChartSParameterChartSmithChartSquareChartTDRChartTDRChart.contextMenuEvent()TDRChart.copy()TDRChart.dataTDRChart.fixedSpanTDRChart.fixedValuesTDRChart.isPlotable()TDRChart.lengthAtPosition()TDRChart.markerLocationTDRChart.markersTDRChart.maxDisplayLengthTDRChart.maxImpedanceTDRChart.minDisplayLengthTDRChart.minImpedanceTDRChart.mouseMoveEvent()TDRChart.paintEvent()TDRChart.referenceTDRChart.resetDisplayLimits()TDRChart.resizeEvent()TDRChart.setFixedSpan()TDRChart.setFixedValues()TDRChart.setMaximumImpedance()TDRChart.setMaximumLength()TDRChart.setMinimumImpedance()TDRChart.setMinimumLength()TDRChart.swrMarkersTDRChart.valueAtPosition()TDRChart.zoomTo()
VSWRChart
- NanoVNASaver.Controls package
- Submodules
- NanoVNASaver.Controls.Control module
- NanoVNASaver.Controls.MarkerControl module
- NanoVNASaver.Controls.SerialControl module
- NanoVNASaver.Controls.SweepControl module
SweepControlSweepControl.get_center()SweepControl.get_end()SweepControl.get_segments()SweepControl.get_span()SweepControl.get_start()SweepControl.set_center()SweepControl.set_end()SweepControl.set_segments()SweepControl.set_span()SweepControl.set_start()SweepControl.toggle_settings()SweepControl.update_center_span()SweepControl.update_start_end()SweepControl.update_step_size()SweepControl.update_sweep()
- Module contents
- NanoVNASaver.Hardware package
- Submodules
- NanoVNASaver.Hardware.AVNA module
- NanoVNASaver.Hardware.Hardware module
- NanoVNASaver.Hardware.JNCRadio_VNA_3G module
- NanoVNASaver.Hardware.NanoVNA module
- NanoVNASaver.Hardware.NanoVNA_F module
- NanoVNASaver.Hardware.NanoVNA_F_V2 module
- NanoVNASaver.Hardware.NanoVNA_H module
- NanoVNASaver.Hardware.NanoVNA_H4 module
- NanoVNASaver.Hardware.NanoVNA_V2 module
NanoVNA_V2NanoVNA_V2.getCalibration()NanoVNA_V2.nameNanoVNA_V2.readFirmware()NanoVNA_V2.readFrequencies()NanoVNA_V2.readValues()NanoVNA_V2.readVersion()NanoVNA_V2.read_board_revision()NanoVNA_V2.read_features()NanoVNA_V2.resetSweep()NanoVNA_V2.screenheightNanoVNA_V2.screenwidthNanoVNA_V2.setSweep()NanoVNA_V2.setTXPower()NanoVNA_V2.valid_datapoints
- NanoVNASaver.Hardware.SV4401A module
- NanoVNASaver.Hardware.SV6301A module
- NanoVNASaver.Hardware.Serial module
- NanoVNASaver.Hardware.TinySA module
- NanoVNASaver.Hardware.VNA module
VNAVNA.SNVNA.connect()VNA.connected()VNA.disconnect()VNA.exec_command()VNA.flushSerialBuffers()VNA.getCalibration()VNA.getFeatures()VNA.getScreenshot()VNA.getSerialNumber()VNA.get_bandwidths()VNA.nameVNA.readFirmware()VNA.readFrequencies()VNA.readValues()VNA.readVersion()VNA.read_features()VNA.reconnect()VNA.resetSweep()VNA.setSweep()VNA.setTXPower()VNA.set_bandwidth()VNA.sweep_points_maxVNA.sweep_points_minVNA.valid_datapointsVNA.wait
- Module contents
- NanoVNASaver.Marker package
- Submodules
- NanoVNASaver.Marker.Delta module
- NanoVNASaver.Marker.Values module
- NanoVNASaver.Marker.Widget module
MarkerMarker.active_labelsMarker.buildForm()Marker.coloredTextMarker.count()Marker.findLocation()Marker.getRow()Marker.get_data_layout()Marker.locationMarker.resetLabels()Marker.returnloss_is_positiveMarker.setColor()Marker.setColoredText()Marker.setFieldSelection()Marker.setFrequency()Marker.setScale()Marker.updateLabels()Marker.update_settings()Marker.updated
MarkerLabel
- Module contents
- NanoVNASaver.Settings package
- NanoVNASaver.Windows package
- Submodules
- NanoVNASaver.Windows.About module
- NanoVNASaver.Windows.AnalysisWindow module
- NanoVNASaver.Windows.Bands module
- NanoVNASaver.Windows.CalibrationSettings module
CalibrationWindowCalibrationWindow.automaticCalibration()CalibrationWindow.automaticCalibrationStep()CalibrationWindow.cal_save()CalibrationWindow.calculate()CalibrationWindow.checkExpertUser()CalibrationWindow.deleteCalibrationStandard()CalibrationWindow.idealCheckboxChanged()CalibrationWindow.listCalibrationStandards()CalibrationWindow.loadCalibration()CalibrationWindow.loadCalibrationStandard()CalibrationWindow.manual_save()CalibrationWindow.nextStepCalibrationWindow.reset()CalibrationWindow.saveCalibration()CalibrationWindow.saveCalibrationStandard()CalibrationWindow.setOffsetDelay()
getFloatValue()
- NanoVNASaver.Windows.Defaults module
- NanoVNASaver.Windows.DeviceSettings module
DeviceSettingsWindowDeviceSettingsWindow.captureScreenshot()DeviceSettingsWindow.customPoint_check()DeviceSettingsWindow.custom_points_EidtDeviceSettingsWindow.custom_points_checkBoxDeviceSettingsWindow.show()DeviceSettingsWindow.updateBandwidth()DeviceSettingsWindow.updateFields()DeviceSettingsWindow.updateNrDatapoints()DeviceSettingsWindow.updateValidation()DeviceSettingsWindow.updatecustomPoint()
- NanoVNASaver.Windows.DisplaySettings module
DisplaySettingsWindowDisplaySettingsWindow.addMarker()DisplaySettingsWindow.addVSWRMarker()DisplaySettingsWindow.changeChart()DisplaySettingsWindow.changeDarkMode()DisplaySettingsWindow.changeFilledMarkers()DisplaySettingsWindow.changeFont()DisplaySettingsWindow.changeLineThickness()DisplaySettingsWindow.changeMarkerAtTip()DisplaySettingsWindow.changeMarkerSize()DisplaySettingsWindow.changePointSize()DisplaySettingsWindow.changeReturnLoss()DisplaySettingsWindow.changeSetting()DisplaySettingsWindow.changeShowLines()DisplaySettingsWindow.changeShowMarkerNumber()DisplaySettingsWindow.color_picker()DisplaySettingsWindow.custom_colors()DisplaySettingsWindow.displayBandsWindow()DisplaySettingsWindow.displayMarkerWindow()DisplaySettingsWindow.removeMarker()DisplaySettingsWindow.removeVSWRMarker()DisplaySettingsWindow.setColor()DisplaySettingsWindow.setShowBands()DisplaySettingsWindow.trace_colors()DisplaySettingsWindow.updateCharts()
- NanoVNASaver.Windows.Files module
- NanoVNASaver.Windows.MarkerSettings module
MarkerSettingsWindowMarkerSettingsWindow.applyButtonClick()MarkerSettingsWindow.cancelButtonClick()MarkerSettingsWindow.defaultButtonClick()MarkerSettingsWindow.exampleData11MarkerSettingsWindow.exampleData21MarkerSettingsWindow.okButtonClick()MarkerSettingsWindow.updateField()MarkerSettingsWindow.updateMarker()MarkerSettingsWindow.update_displayed_data_form()
- NanoVNASaver.Windows.Screenshot module
- NanoVNASaver.Windows.SweepSettings module
SweepSettingsWindowSweepSettingsWindow.settings_box()SweepSettingsWindow.sweep_box()SweepSettingsWindow.title_box()SweepSettingsWindow.update_attenuator()SweepSettingsWindow.update_averaging()SweepSettingsWindow.update_band()SweepSettingsWindow.update_logarithmic()SweepSettingsWindow.update_mode()SweepSettingsWindow.update_padding()SweepSettingsWindow.update_title()SweepSettingsWindow.update_tx_power()SweepSettingsWindow.vna_connected()
- NanoVNASaver.Windows.TDR module
- Module contents
AboutWindowAnalysisWindowBandsWindowCalibrationWindowCalibrationWindow.automaticCalibration()CalibrationWindow.automaticCalibrationStep()CalibrationWindow.cal_save()CalibrationWindow.calculate()CalibrationWindow.checkExpertUser()CalibrationWindow.deleteCalibrationStandard()CalibrationWindow.idealCheckboxChanged()CalibrationWindow.listCalibrationStandards()CalibrationWindow.loadCalibration()CalibrationWindow.loadCalibrationStandard()CalibrationWindow.manual_save()CalibrationWindow.nextStepCalibrationWindow.reset()CalibrationWindow.saveCalibration()CalibrationWindow.saveCalibrationStandard()CalibrationWindow.setOffsetDelay()
DeviceSettingsWindowDeviceSettingsWindow.captureScreenshot()DeviceSettingsWindow.customPoint_check()DeviceSettingsWindow.custom_points_EidtDeviceSettingsWindow.custom_points_checkBoxDeviceSettingsWindow.show()DeviceSettingsWindow.updateBandwidth()DeviceSettingsWindow.updateFields()DeviceSettingsWindow.updateNrDatapoints()DeviceSettingsWindow.updateValidation()DeviceSettingsWindow.updatecustomPoint()
DisplaySettingsWindowDisplaySettingsWindow.addMarker()DisplaySettingsWindow.addVSWRMarker()DisplaySettingsWindow.changeChart()DisplaySettingsWindow.changeDarkMode()DisplaySettingsWindow.changeFilledMarkers()DisplaySettingsWindow.changeFont()DisplaySettingsWindow.changeLineThickness()DisplaySettingsWindow.changeMarkerAtTip()DisplaySettingsWindow.changeMarkerSize()DisplaySettingsWindow.changePointSize()DisplaySettingsWindow.changeReturnLoss()DisplaySettingsWindow.changeSetting()DisplaySettingsWindow.changeShowLines()DisplaySettingsWindow.changeShowMarkerNumber()DisplaySettingsWindow.color_picker()DisplaySettingsWindow.custom_colors()DisplaySettingsWindow.displayBandsWindow()DisplaySettingsWindow.displayMarkerWindow()DisplaySettingsWindow.removeMarker()DisplaySettingsWindow.removeVSWRMarker()DisplaySettingsWindow.setColor()DisplaySettingsWindow.setShowBands()DisplaySettingsWindow.trace_colors()DisplaySettingsWindow.updateCharts()
FilesWindowMarkerSettingsWindowMarkerSettingsWindow.applyButtonClick()MarkerSettingsWindow.cancelButtonClick()MarkerSettingsWindow.defaultButtonClick()MarkerSettingsWindow.exampleData11MarkerSettingsWindow.exampleData21MarkerSettingsWindow.okButtonClick()MarkerSettingsWindow.updateField()MarkerSettingsWindow.updateMarker()MarkerSettingsWindow.update_displayed_data_form()
ScreenshotWindowSweepSettingsWindowSweepSettingsWindow.settings_box()SweepSettingsWindow.sweep_box()SweepSettingsWindow.title_box()SweepSettingsWindow.update_attenuator()SweepSettingsWindow.update_averaging()SweepSettingsWindow.update_band()SweepSettingsWindow.update_logarithmic()SweepSettingsWindow.update_mode()SweepSettingsWindow.update_padding()SweepSettingsWindow.update_title()SweepSettingsWindow.update_tx_power()SweepSettingsWindow.vna_connected()
TDRWindow
Submodules¶
NanoVNASaver.About module¶
NanoVNASaver.AnalyticTools module¶
- NanoVNASaver.AnalyticTools.calculate_rolloff(s21: list[NanoVNASaver.RFTools.Datapoint], idx_1: int, idx_2: int) tuple[float, float][source]¶
- NanoVNASaver.AnalyticTools.center_from_idx(gains: list[float], idx: int, delta: float = 3.0) int[source]¶
find maximum from index postion of gains in a attn dB gain span
- Parameters:
gains (list[float]) – gain values
idx (int) – start position to search from
delta (float, optional) – max gain delta from start. Defaults to 3.0.
- Returns:
position of highest gain from start in range (-1 if no data)
- Return type:
int
- NanoVNASaver.AnalyticTools.cut_off_left(gains: list[float], idx: int, peak_gain: float, attn: float = 3.0) int[source]¶
find first position in list where gain in attn lower then peak left from index
- Parameters:
gains (list[float]) – gain values
idx (int) – start position to search from
peak_gain (float) – reference gain value
attn (float, optional) – attenuation to search position for. Defaults to 3.0.
- Returns:
position of attenuation point. (-1 if no data)
- Return type:
int
- NanoVNASaver.AnalyticTools.cut_off_right(gains: list[float], idx: int, peak_gain: float, attn: float = 3.0) int[source]¶
find first position in list where gain in attn lower then peak right from index
- Parameters:
gains (list[float]) – gain values
idx (int) – start position to search from
peak_gain (float) – reference gain value
attn (float, optional) – attenuation to search position for. Defaults to 3.0.
- Returns:
position of attenuation point. (-1 if no data)
- Return type:
int
- NanoVNASaver.AnalyticTools.dip_cut_offs(gains: list[float], peak_gain: float, attn: float = 3.0) tuple[int, int][source]¶
- NanoVNASaver.AnalyticTools.maxima(data: list[float], threshold: float = 0.0) list[int][source]¶
- Parameters:
data (list[float]) – data list to execute
- Returns:
indices of maxima
- Return type:
list[int]
- NanoVNASaver.AnalyticTools.minima(data: list[float], threshold: float = 0.0) list[int][source]¶
- Parameters:
data (list[float]) – data list to execute
- Returns:
indices of minima
- Return type:
list[int]
- NanoVNASaver.AnalyticTools.take_from_idx(data: list[float], idx: int, predicate: Callable) list[int][source]¶
take_from_center
- Parameters:
data (list[float]) – data list to execute
idx (int) – index of a start position
predicate (Callable) – predicate on which elements to take from center. (e.g. lambda i: i[1] < threshold)
- Returns:
- indices of element matching predicate left
and right from index
- Return type:
list[int]
NanoVNASaver.Calibration module¶
- class NanoVNASaver.Calibration.CalData(short: complex = 0j, open: complex = 0j, load: complex = 0j, through: complex = 0j, thrurefl: complex = 0j, isolation: complex = 0j, freq: int = 0, e00: float = 0.0, e11: float = 0.0, delta_e: float = 0.0, e10e01: float = 0.0, e30: float = 0.0, e22: float = 0.0, e10e32: float = 0.0)[source]¶
Bases:
object- delta_e: float = 0.0¶
- e00: float = 0.0¶
- e10e01: float = 0.0¶
- e10e32: float = 0.0¶
- e11: float = 0.0¶
- e22: float = 0.0¶
- e30: float = 0.0¶
- freq: int = 0¶
- isolation: complex = 0j¶
- load: complex = 0j¶
- open: complex = 0j¶
- short: complex = 0j¶
- through: complex = 0j¶
- thrurefl: complex = 0j¶
- class NanoVNASaver.Calibration.CalDataSet[source]¶
Bases:
UserDict- from_str(text: str) CalDataSet[source]¶
- class NanoVNASaver.Calibration.CalElement(short_is_ideal: bool = True, short_l0: float = 5.7e-12, short_l1: float = -8.96e-20, short_l2: float = -1.1e-29, short_l3: float = -4.12e-37, short_length: float = -34.2, open_is_ideal: bool = True, open_c0: float = 2.1e-14, open_c1: float = 5.67e-23, open_c2: float = -2.39e-31, open_c3: float = 2e-40, open_length: float = 0.0, load_is_ideal: bool = True, load_r: float = 50.0, load_l: float = 0.0, load_c: float = 0.0, load_length: float = 0.0, through_is_ideal: bool = True, through_length: float = 0.0)[source]¶
Bases:
object- load_c: float = 0.0¶
- load_is_ideal: bool = True¶
- load_l: float = 0.0¶
- load_length: float = 0.0¶
- load_r: float = 50.0¶
- open_c0: float = 2.1e-14¶
- open_c1: float = 5.67e-23¶
- open_c2: float = -2.39e-31¶
- open_c3: float = 2e-40¶
- open_is_ideal: bool = True¶
- open_length: float = 0.0¶
- short_is_ideal: bool = True¶
- short_l0: float = 5.7e-12¶
- short_l1: float = -8.96e-20¶
- short_l2: float = -1.1e-29¶
- short_l3: float = -4.12e-37¶
- short_length: float = -34.2¶
- through_is_ideal: bool = True¶
- through_length: float = 0.0¶
- class NanoVNASaver.Calibration.Calibration[source]¶
Bases:
object- insert(name: str, data: list[NanoVNASaver.RFTools.Datapoint])[source]¶
NanoVNASaver.Defaults module¶
- class NanoVNASaver.Defaults.CFG(gui: object = <factory>, charts_selected: object = <factory>, chart: object = <factory>, chart_colors: object = <factory>, markers: object = <factory>)[source]¶
Bases:
object- chart: object¶
- chart_colors: object¶
- charts_selected: object¶
- gui: object¶
- markers: object¶
- class NanoVNASaver.Defaults.Chart(point_size: int = 2, show_lines: bool = False, line_thickness: int = 1, marker_count: int = 3, marker_label: bool = False, marker_filled: bool = False, marker_at_tip: bool = False, marker_size: int = 8, returnloss_is_positive: bool = False, show_bands: bool = False, vswr_lines: list = <factory>)[source]¶
Bases:
object- line_thickness: int = 1¶
- marker_at_tip: bool = False¶
- marker_count: int = 3¶
- marker_filled: bool = False¶
- marker_label: bool = False¶
- marker_size: int = 8¶
- point_size: int = 2¶
- returnloss_is_positive: bool = False¶
- show_bands: bool = False¶
- show_lines: bool = False¶
- vswr_lines: list¶
- class NanoVNASaver.Defaults.ChartColors(background: PyQt6.QtGui.QColor = <factory>, foreground: PyQt6.QtGui.QColor = <factory>, reference: PyQt6.QtGui.QColor = <factory>, reference_secondary: PyQt6.QtGui.QColor = <factory>, sweep: PyQt6.QtGui.QColor = <factory>, sweep_secondary: PyQt6.QtGui.QColor = <factory>, swr: PyQt6.QtGui.QColor = <factory>, text: PyQt6.QtGui.QColor = <factory>, bands: PyQt6.QtGui.QColor = <factory>)[source]¶
Bases:
object- background: QColor¶
- bands: QColor¶
- foreground: QColor¶
- reference: QColor¶
- reference_secondary: QColor¶
- sweep: QColor¶
- sweep_secondary: QColor¶
- swr: QColor¶
- text: QColor¶
- class NanoVNASaver.Defaults.ChartsSelected(chart_00: str = 'S11 Smith Chart', chart_01: str = 'S11 Return Loss', chart_02: str = 'None', chart_10: str = 'S21 Polar Plot', chart_11: str = 'S21 Gain', chart_12: str = 'None')[source]¶
Bases:
object- chart_00: str = 'S11 Smith Chart'¶
- chart_01: str = 'S11 Return Loss'¶
- chart_02: str = 'None'¶
- chart_10: str = 'S21 Polar Plot'¶
- chart_11: str = 'S21 Gain'¶
- chart_12: str = 'None'¶
- class NanoVNASaver.Defaults.GUI(window_height: int = 950, window_width: int = 1433, font_size: int = 8, custom_colors: bool = False, dark_mode: bool = False, splitter_sizes: PyQt6.QtCore.QByteArray = <factory>, markers_hidden: bool = False)[source]¶
Bases:
object- custom_colors: bool = False¶
- dark_mode: bool = False¶
- font_size: int = 8¶
- splitter_sizes: QByteArray¶
- window_height: int = 950¶
- window_width: int = 1433¶
- class NanoVNASaver.Defaults.Markers(active_labels: list = <factory>, colored_names: bool = True, color_0: PyQt6.QtGui.QColor = <factory>, color_1: PyQt6.QtGui.QColor = <factory>, color_2: PyQt6.QtGui.QColor = <factory>, color_3: PyQt6.QtGui.QColor = <factory>, color_4: PyQt6.QtGui.QColor = <factory>, color_5: PyQt6.QtGui.QColor = <factory>, color_6: PyQt6.QtGui.QColor = <factory>, color_7: PyQt6.QtGui.QColor = <factory>)[source]¶
Bases:
object- active_labels: list¶
- color_0: QColor¶
- color_1: QColor¶
- color_2: QColor¶
- color_3: QColor¶
- color_4: QColor¶
- color_5: QColor¶
- color_6: QColor¶
- color_7: QColor¶
- colored_names: bool = True¶
- NanoVNASaver.Defaults.restore(settings: AppSettings) CFG[source]¶
- NanoVNASaver.Defaults.store(settings: AppSettings, data: CFG = None) None[source]¶
NanoVNASaver.Formatting module¶
- NanoVNASaver.Formatting.format_frequency_space(freq: float, fmt=Format(max_nr_digits=6, fix_decimals=False, space_str=' ', assume_infinity=True, min_offset=-10, max_offset=10, allow_strip=False, allways_signed=False, printable_min=-inf, printable_max=inf, unprintable_under='', unprintable_over='', parse_sloppy_unit=False, parse_sloppy_kilo=False, parse_clamp_min=-inf, parse_clamp_max=inf)) str[source]¶
- NanoVNASaver.Formatting.parse_value(val: str, unit: str = '', fmt: Format = Format(max_nr_digits=6, fix_decimals=False, space_str='', assume_infinity=True, min_offset=-10, max_offset=10, allow_strip=False, allways_signed=False, printable_min=-inf, printable_max=inf, unprintable_under='', unprintable_over='', parse_sloppy_unit=True, parse_sloppy_kilo=True, parse_clamp_min=-inf, parse_clamp_max=inf)) float[source]¶
NanoVNASaver.Inputs module¶
- class NanoVNASaver.Inputs.MarkerFrequencyInputWidget(text='')[source]¶
Bases:
FrequencyInputWidget
NanoVNASaver.NanoVNASaver module¶
- class NanoVNASaver.NanoVNASaver.Communicate[source]¶
Bases:
QObject- data_available¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
NanoVNASaver.RFTools module¶
- class NanoVNASaver.RFTools.Datapoint(freq, re, im)[source]¶
Bases:
NamedTuple- freq: int¶
Alias for field number 0
- property gain: float¶
- im: float¶
Alias for field number 2
- property phase: float¶
return the datapoint’s phase value
- re: float¶
Alias for field number 1
- property vswr: float¶
- property wavelength: float¶
- property z: complex¶
return the s value complex number
- NanoVNASaver.RFTools.corr_att_data(data: list[NanoVNASaver.RFTools.Datapoint], att: float) list[NanoVNASaver.RFTools.Datapoint][source]¶
Correct the ratio for a given attenuation on s21 input
- NanoVNASaver.RFTools.gamma_to_impedance(gamma: complex, ref_impedance: float = 50) complex[source]¶
Calculate impedance from gamma
- NanoVNASaver.RFTools.groupDelay(data: list[NanoVNASaver.RFTools.Datapoint], index: int) float[source]¶
- NanoVNASaver.RFTools.impedance_to_capacitance(z: complex, freq: float) float[source]¶
Calculate capacitive equivalent for reactance
- NanoVNASaver.RFTools.impedance_to_inductance(z: complex, freq: float) float[source]¶
Calculate inductive equivalent for reactance
- NanoVNASaver.RFTools.impedance_to_norm(z: complex, ref_impedance: float = 50) complex[source]¶
Calculate normalized z from impedance
- NanoVNASaver.RFTools.norm_to_impedance(z: complex, ref_impedance: float = 50) complex[source]¶
Calculate impedance from normalized z
- NanoVNASaver.RFTools.parallel_to_serial(z: complex) complex[source]¶
Convert parallel impedance to serial impedance equivalent
NanoVNASaver.SITools module¶
- class NanoVNASaver.SITools.Format(max_nr_digits, fix_decimals, space_str, assume_infinity, min_offset, max_offset, allow_strip, allways_signed, printable_min, printable_max, unprintable_under, unprintable_over, parse_sloppy_unit, parse_sloppy_kilo, parse_clamp_min, parse_clamp_max)[source]¶
Bases:
NamedTuple- allow_strip: bool¶
Alias for field number 6
- allways_signed: bool¶
Alias for field number 7
- assume_infinity: bool¶
Alias for field number 3
- fix_decimals: bool¶
Alias for field number 1
- max_nr_digits: int¶
Alias for field number 0
- max_offset: int¶
Alias for field number 5
- min_offset: int¶
Alias for field number 4
- parse_clamp_max: float¶
Alias for field number 15
- parse_clamp_min: float¶
Alias for field number 14
- parse_sloppy_kilo: bool¶
Alias for field number 13
- parse_sloppy_unit: bool¶
Alias for field number 12
- printable_max: float¶
Alias for field number 9
- printable_min: float¶
Alias for field number 8
- space_str: str¶
Alias for field number 2
- unprintable_over: str¶
Alias for field number 11
- unprintable_under: str¶
Alias for field number 10
- class NanoVNASaver.SITools.Value(value: Real = Decimal('0'), unit: str = '', fmt=Format(max_nr_digits=6, fix_decimals=False, space_str='', assume_infinity=True, min_offset=-10, max_offset=10, allow_strip=False, allways_signed=False, printable_min=-inf, printable_max=inf, unprintable_under='', unprintable_over='', parse_sloppy_unit=False, parse_sloppy_kilo=False, parse_clamp_min=-inf, parse_clamp_max=inf))[source]¶
Bases:
object- CTX = Context(prec=60, rounding=ROUND_HALF_EVEN, Emin=-33, Emax=33, capitals=1, clamp=0, flags=[], traps=[InvalidOperation, DivisionByZero, Overflow])¶
- property unit: str¶
- property value¶
NanoVNASaver.SweepWorker module¶
- class NanoVNASaver.SweepWorker.SweepWorker(app: QWidget)[source]¶
Bases:
QRunnable- applyCalibration(raw_data11: list[NanoVNASaver.RFTools.Datapoint], raw_data21: list[NanoVNASaver.RFTools.Datapoint]) tuple[list[NanoVNASaver.RFTools.Datapoint], list[NanoVNASaver.RFTools.Datapoint]][source]¶
- class NanoVNASaver.SweepWorker.WorkerSignals[source]¶
Bases:
QObject- finished¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- sweepError¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- updated¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
NanoVNASaver.Touchstone module¶
- class NanoVNASaver.Touchstone.Options(unit: str = 'GHZ', parameter: str = 'S', t_format: str = 'ma', resistance: int = 50)[source]¶
Bases:
object- UNIT_TO_FACTOR = {'ghz': 1000000000, 'hz': 1, 'khz': 1000, 'mhz': 1000000}¶
- VALID_FORMATS = ('ma', 'db', 'ri')¶
- VALID_PARAMETERS = 'syzgh'¶
- VALID_UNITS = dict_keys(['ghz', 'mhz', 'khz', 'hz'])¶
- property factor: int¶
- class NanoVNASaver.Touchstone.Touchstone(filename: str = '')[source]¶
Bases:
object- FIELD_ORDER = ('11', '21', '12', '22')¶
- loads(s: str)[source]¶
Parse touchstone 1.1 string input appends to existing sdata if Touchstone object exists
- property r: int¶
- s(name: str) list[NanoVNASaver.RFTools.Datapoint][source]¶
- property s11: list[NanoVNASaver.RFTools.Datapoint]¶
- property s12: list[NanoVNASaver.RFTools.Datapoint]¶
- property s21: list[NanoVNASaver.RFTools.Datapoint]¶
- property s22: list[NanoVNASaver.RFTools.Datapoint]¶
- save(nr_params: int = 1)[source]¶
Save touchstone data to file.
- Parameters:
nr_params – Number of s-parameters. 2 for s1p, 4 for s2p