예제 #1
0
    def __init__(self, parent):
        super().__init__(parent)
        self.rmsForCaPOCorrection = []

        for rm in data.referenceMaterialNames():
            a = QtGui.QWidgetAction(self)
            cb = QtGui.QCheckBox(rm, self)
            cb.setStyleSheet('QCheckBox { padding-left: 5px; margin: 3px; }')
            a.setDefaultWidget(cb)
            self.addAction(a)
            cb.clicked.connect(partial(self.updateChannels, rm))

        self.aboutToShow.connect(self.updateMenu)
예제 #2
0
def settingsWidget():
    """
    This function puts together a user interface to configure the DRS.

    It is important to have the last line of this function call:
    drs.setSettingsWidget(widget)
    """

    widget = QtGui.QWidget()
    formLayout = QtGui.QFormLayout()
    widget.setLayout(formLayout)

    timeSeriesNames = data.timeSeriesNames(data.Input)
    defaultChannelName = ""
    if 'TotalBeam' in timeSeriesNames:
        defaultChannelName = 'TotalBeam'
    elif timeSeriesNames:
        defaultChannelName = timeSeriesNames[0]

    rmNames = data.selectionGroupNames(data.ReferenceMaterial)

    drs.setSetting("IndexChannel", defaultChannelName)
    drs.setSetting("ReferenceMaterial", "CO3_shell")
    drs.setSetting("Mask", True)
    drs.setSetting("MaskChannel", defaultChannelName)
    drs.setSetting("MaskCutoff", 0.05)
    drs.setSetting("MaskTrim", 0.0)
    drs.setSetting("Age", 0.)
    drs.setSetting("Dy_Er", 1.8)
    drs.setSetting("RbBias", 0.)
    drs.setSetting("CaArBias", 0.)
    drs.setSetting("Sr88_86_reference", 8.37520938)  #Konter & Storm (2014)
    drs.setSetting("Rb87_85_reference", 0.385710)    #Konter & Storm (2014)

    drs.setSetting("PropagateError", False)

    settings = drs.settings()

    indexComboBox = QtGui.QComboBox(widget)
    indexComboBox.addItems(timeSeriesNames)
    indexComboBox.setCurrentText(settings["IndexChannel"])
    indexComboBox.currentTextChanged.connect(lambda t: drs.setSetting("IndexChannel", t))
    formLayout.addRow("Index channel", indexComboBox)

    rmComboBox = QtGui.QComboBox(widget)
    rmComboBox.addItems(rmNames)
    rmComboBox.setCurrentText(settings["ReferenceMaterial"])
    rmComboBox.currentTextChanged.connect(lambda t: drs.setSetting("ReferenceMaterial", t))
    formLayout.addRow("Reference material", rmComboBox)

    verticalSpacer = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
    formLayout.addItem(verticalSpacer)

    maskCheckBox = QtGui.QCheckBox(widget)
    maskCheckBox.setChecked(settings["Mask"])
    maskCheckBox.toggled.connect(lambda t: drs.setSetting("Mask", bool(t)))
    formLayout.addRow("Mask", maskCheckBox)

    maskComboBox = QtGui.QComboBox(widget)
    maskComboBox.addItems(data.timeSeriesNames(data.Input))
    maskComboBox.setCurrentText(settings["MaskChannel"])
    maskComboBox.currentTextChanged.connect(lambda t: drs.setSetting("MaskChannel", t))
    formLayout.addRow("Mask channel", maskComboBox)

    maskLineEdit = QtGui.QLineEdit(widget)
    maskLineEdit.setText(settings["MaskCutoff"])
    maskLineEdit.textChanged.connect(lambda t: drs.setSetting("MaskCutoff", float(t)))
    formLayout.addRow("Mask cutoff", maskLineEdit)

    maskTrimLineEdit = QtGui.QLineEdit(widget)
    maskTrimLineEdit.setText(settings["MaskTrim"])
    maskTrimLineEdit.textChanged.connect(lambda t: drs.setSetting("MaskTrim", float(t)))
    formLayout.addRow("Mask trim", maskTrimLineEdit)

    verticalSpacer2 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
    formLayout.addItem(verticalSpacer2)

    ageLineEdit = QtGui.QLineEdit(widget)
    ageLineEdit.setText(settings["Age"])
    ageLineEdit.textChanged.connect(lambda t: drs.setSetting("Age", float(t)))
    formLayout.addRow("Age", ageLineEdit)

    rbBiasLineEdit = QtGui.QLineEdit(widget)
    rbBiasLineEdit.setText(settings["RbBias"])
    rbBiasLineEdit.textChanged.connect(lambda t: drs.setSetting("RbBias", float(t)))
    formLayout.addRow("Rb Bias Adjustment", rbBiasLineEdit)

    caArBiasLineEdit = QtGui.QLineEdit(widget)
    caArBiasLineEdit.setText(settings["CaArBias"])
    caArBiasLineEdit.textChanged.connect(lambda t: drs.setSetting("CaArBias", float(t)))
    formLayout.addRow("CaAr Bias Adjustment", caArBiasLineEdit)

    dyErLineEdit = QtGui.QLineEdit(widget)
    dyErLineEdit.setText(settings["Dy_Er"])
    dyErLineEdit.textChanged.connect(lambda t: drs.setSetting("Dy_Er", float(t)))
    formLayout.addRow("Dy/Er ratio", dyErLineEdit)

    sr88_86_refLineEdit = QtGui.QLineEdit(widget)
    sr88_86_refLineEdit.setText(settings["Sr88_86_reference"])
    sr88_86_refLineEdit.textChanged.connect(lambda t: drs.setSetting("Sr88_86_reference", float(t)))
    formLayout.addRow("Reference Sr88/Sr86 value", sr88_86_refLineEdit)

    rb87_85_refLineEdit = QtGui.QLineEdit(widget)
    rb87_85_refLineEdit.setText(settings["Rb87_85_reference"])
    rb87_85_refLineEdit.textChanged.connect(lambda t: drs.setSetting("Rb87_85_reference", float(t)))
    formLayout.addRow("Reference Rb87/Rb85 value", rb87_85_refLineEdit)

    propCheckBox = QtGui.QCheckBox(widget)
    propCheckBox.setChecked(settings["PropagateError"])
    propCheckBox.toggled.connect(lambda t: drs.setSetting("PropagateError", bool(t)))
    formLayout.addRow("Propagate Errors?", propCheckBox)

    drs.setSettingsWidget(widget)
예제 #3
0
def settingsWidget():
    widget = QtGui.QWidget()
    formLayout = QtGui.QFormLayout()
    formLayout.setFieldGrowthPolicy(QtGui.QFormLayout.FieldsStayAtSizeHint)
    formLayout.setFormAlignment(Qt.AlignHCenter | Qt.AlignTop)
    widget.setLayout(formLayout)

    rmComboBox = QtGui.QComboBox(widget)
    rmComboBox.addItems(data.referenceMaterialNames())
    rmComboBox.currentTextChanged.connect(
        lambda s: drs.setSetting("External", str(s)))
    formLayout.addRow("External reference material", rmComboBox)

    elementsList = QtGui.QListWidget(widget)
    elementsList.addItems(
        [c for c in data.timeSeriesNames(data.Input) if 'TotalBeam' not in c])
    elementsList.setSelectionMode(QtGui.QAbstractItemView.ExtendedSelection)

    def updateElements():
        elements = [wi.text() for wi in elementsList.selectedItems()]
        drs.setSetting("Elements", elements)

    elementsList.itemSelectionChanged.connect(updateElements)
    formLayout.addRow("Elements to normalize", elementsList)

    oxideCheckBox = QtGui.QCheckBox(widget)
    oxideCheckBox.toggled.connect(lambda b: drs.setSetting("Oxides", bool(b)))
    formLayout.addRow("Oxides?", oxideCheckBox)

    valueLineEdit = QtGui.QLineEdit(widget)
    valueLineEdit.textChanged.connect(
        lambda v: drs.setSetting("Value", float(v)))
    formLayout.addRow("Value (wt. %)", valueLineEdit)

    maskComboBox = QtGui.QComboBox(widget)
    maskComboBox.addItems(data.timeSeriesNames())
    maskComboBox.currentTextChanged.connect(
        lambda s: drs.setSetting("MaskChannel", str(s)))
    formLayout.addRow("Mask channel", maskComboBox)

    maskLineEdit = QtGui.QLineEdit(widget)
    maskLineEdit.textChanged.connect(
        lambda v: drs.setSetting("MaskValue", float(v)))
    formLayout.addRow("Mask value", maskLineEdit)

    # Restore settings
    try:
        settings = drs.settings()
        rmComboBox.setCurrentText(settings["External"])
        elementsList.selectionModel().clear()
        for el in settings["Elements"]:
            matches = elementsList.findItems(el, Qt.MatchFixedString)
            if matches:
                matches[0].setSelected(True)
        oxideCheckBox.setChecked(settings["Oxides"])
        valueLineEdit.setText(str(float(settings["Value"])))
        maskComboBox.setCurrentText(settings["MaskChannel"])
        maskLineEdit.setText(str(float(settings["MaskValue"])))
    except KeyError:
        pass

    drs.setSettingsWidget(widget)
예제 #4
0
def settingsWidget():
    """
	This function puts together a user interface to configure the DRS.
	
	It is important to have the last line of this function call:
	drs.setSettingsWidget(widget)
	"""
    widget = QtGui.QWidget()
    formLayout = QtGui.QFormLayout()
    formLayout.setFieldGrowthPolicy(QtGui.QFormLayout.AllNonFixedFieldsGrow)
    formLayout.setFormAlignment(Qt.AlignHCenter | Qt.AlignTop)
    widget.setLayout(formLayout)

    timeSeriesNames = data.timeSeriesNames(data.Input)
    defaultChannelName = ""
    if timeSeriesNames:
        defaultChannelName = timeSeriesNames[0]

    rmNames = data.selectionGroupNames(data.ReferenceMaterial)

    drs.setSetting("IndexChannel", "Nd146")
    drs.setSetting("ReferenceMaterial", "M_STK")
    drs.setSetting("MaskChannel", "Nd146")
    drs.setSetting("MaskCutoff", 0.1)
    drs.setSetting("MaskTrim", 0.0)
    drs.setSetting("StartTrim", 0.1)
    drs.setSetting("EndTrim", 0.1)
    drs.setSetting("NdTrue", 0.7219)
    drs.setSetting("Sm147_149", 1.08680)
    drs.setSetting("Sm144_149", 0.22332)
    drs.setSetting("Sm148_149", 0.81419)
    drs.setSetting("Sm150_149", 0.53366)
    #drs.setSetting("Age", 0)
    drs.setSetting("BeamSecondsMethod", "Laser log")
    drs.setSetting("BeamSecondsChannel", "Nd146")
    drs.setSetting("BeamSecondsValue", 50)
    drs.setSetting("PropagateError", True)

    settings = drs.settings()

    indexComboBox = QtGui.QComboBox(widget)
    indexComboBox.setFixedWidth(150)
    indexComboBox.addItems(timeSeriesNames)
    indexComboBox.setCurrentText(settings["IndexChannel"])
    indexComboBox.currentTextChanged.connect(
        lambda t: drs.setSetting("IndexChannel", t))
    formLayout.addRow("Index channel", indexComboBox)

    rmComboBox = QtGui.QComboBox(widget)
    rmComboBox.setFixedWidth(150)
    rmComboBox.addItems(data.referenceMaterialNames())
    rmComboBox.currentTextChanged.connect(
        lambda s: drs.setSetting("ReferenceMaterial", str(s)))
    formLayout.addRow("Reference material", rmComboBox)

    maskComboBox = QtGui.QComboBox(widget)
    maskComboBox.setFixedWidth(150)
    maskComboBox.addItems(data.timeSeriesNames(data.Input))
    maskComboBox.setCurrentText(settings["MaskChannel"])
    maskComboBox.currentTextChanged.connect(
        lambda t: drs.setSetting("MaskChannel", t))
    formLayout.addRow("Mask channel", maskComboBox)

    maskLineEdit = QtGui.QLineEdit(widget)
    maskLineEdit.setFixedWidth(150)
    maskLineEdit.setText(settings["MaskCutoff"])
    maskLineEdit.textChanged.connect(
        lambda t: drs.setSetting("MaskCutoff", float(t)))
    formLayout.addRow("Mask cutoff", maskLineEdit)

    #maskTrimLineEdit = QtGui.QLineEdit(widget)
    #maskTrimLineEdit.setText(settings["MaskTrim"])
    #maskTrimLineEdit.textChanged.connect(lambda t: drs.setSetting("MaskTrim", float(t)))
    #formLayout.addRow("Mask trim", maskTrimLineEdit)

    startLineEdit = QtGui.QLineEdit(widget)
    startLineEdit.setFixedWidth(150)
    formLayout.addRow("Start trim (s)", startLineEdit)
    startLineEdit.textEdited.connect(
        lambda s: drs.setSetting("StartTrim", float(s)))

    endLineEdit = QtGui.QLineEdit(widget)
    endLineEdit.setFixedWidth(150)
    formLayout.addRow("End trim (s)", endLineEdit)
    endLineEdit.textEdited.connect(
        lambda s: drs.setSetting("EndTrim", float(s)))

    ndTrueLineEdit = QtGui.QLineEdit(widget)
    ndTrueLineEdit.setFixedWidth(150)
    ndTrueLineEdit.setText(settings["NdTrue"])
    ndTrueLineEdit.textChanged.connect(
        lambda t: drs.setSetting("NdTrue", float(t)))
    formLayout.addRow("NdTrue", ndTrueLineEdit)

    Sm147_149LineEdit = QtGui.QLineEdit(widget)
    Sm147_149LineEdit.setFixedWidth(150)
    Sm147_149LineEdit.setText(settings["Sm147_149"])
    Sm147_149LineEdit.textChanged.connect(
        lambda t: drs.setSetting("Sm147_149", float(t)))
    formLayout.addRow("Sm147_149", Sm147_149LineEdit)

    Sm144_149LineEdit = QtGui.QLineEdit(widget)
    Sm144_149LineEdit.setFixedWidth(150)
    Sm144_149LineEdit.setText(settings["Sm144_149"])
    Sm144_149LineEdit.textChanged.connect(
        lambda t: drs.setSetting("Sm144_149", float(t)))
    formLayout.addRow("Sm144_149", Sm144_149LineEdit)

    Sm148_149LineEdit = QtGui.QLineEdit(widget)
    Sm148_149LineEdit.setFixedWidth(150)
    Sm148_149LineEdit.setText(settings["Sm148_149"])
    Sm148_149LineEdit.textChanged.connect(
        lambda t: drs.setSetting("Sm148_149", float(t)))
    formLayout.addRow("Sm148_149", Sm148_149LineEdit)

    Sm150_149LineEdit = QtGui.QLineEdit(widget)
    Sm150_149LineEdit.setFixedWidth(150)
    Sm150_149LineEdit.setText(settings["Sm150_149"])
    Sm150_149LineEdit.textChanged.connect(
        lambda t: drs.setSetting("Sm150_149", float(t)))
    formLayout.addRow("Sm150_149", Sm150_149LineEdit)

    #ageLineEdit = QtGui.QLineEdit(widget)
    #ageLineEdit.setText(settings["Age"])
    #ageLineEdit.textChanged.connect(lambda t: drs.setSetting("Age", float(t)))
    #formLayout.addRow("Age", ageLineEdit)

    bsMethodComboBox = QtGui.QComboBox(widget)
    bsMethodComboBox.setFixedWidth(150)
    bsMethodComboBox.addItems([
        'Laser log', 'Gaps between samples', 'Cutoff threshold',
        'Rate of change'
    ])
    bsMethodComboBox.activated.connect(lambda v: drs.setSetting(
        'BeamSecondsMethod', bsMethodComboBox.currentText))
    bsMethodComboBox.setCurrentText(drs.setting('BeamSecondsMethod'))
    formLayout.addRow('Beam seconds method', bsMethodComboBox)

    bsChannelComboBox = QtGui.QComboBox(widget)
    bsChannelComboBox.setFixedWidth(150)
    bsChannelComboBox.addItems(data.timeSeriesNames(data.Input))
    bsChannelComboBox.activated.connect(lambda v: drs.setSetting(
        'BeamSecondsChannel', bsChannelComboBox.currentText))
    bsChannelComboBox.setCurrentText(drs.setting('BeamSecondsChannel'))
    formLayout.addRow('Beam seconds channel', bsChannelComboBox)

    bsValueLineEdit = QtGui.QLineEdit(widget)
    bsValueLineEdit.setFixedWidth(150)
    bsValueLineEdit.textEdited.connect(
        lambda v: drs.setSetting('BeamSecondsValue', float(v)))
    bsValueLineEdit.setText(drs.setting('BeamSecondsValue'))
    formLayout.addRow('Beam seconds value', bsValueLineEdit)

    plotWidget = Plot(widget)
    plotWidget.setFixedSize(500, 400)
    formLayout.addRow('Down-hole fit', plotWidget)
    drs.setSetting('FitWidget', plotWidget)

    propCheckBox = QtGui.QCheckBox(widget)
    propCheckBox.setChecked(settings["PropagateError"])
    propCheckBox.toggled.connect(
        lambda t: drs.setSetting("PropagateError", bool(t)))
    formLayout.addRow("PropagateError", propCheckBox)

    # Restore settings
    try:
        settings = drs.settings()
        print('Restoring settings...')
        print(settings)
        rmComboBox.setCurrentText(settings["ReferenceMaterial"])
        startLineEdit.setText(str(settings['StartTrim']))
        endLineEdit.setText(str(settings['EndTrim']))
        bsMethodComboBox.setCurrentText(settings['BeamSecondsMethod'])
        bsChannelComboBox.setCurrentText(settings['BeamSecondsChannel'])
        bsValueLineEdit.setText(str(settings['BeamSecondsValue']))
    except KeyError:
        pass

    drs.setSettingsWidget(widget)
예제 #5
0
def settingsWidget():
	"""
	This function puts together a user interface to configure the DRS.

	It is important to have the last line of this function call:
	drs.setSettingsWidget(widget)
	"""

	widget = QtGui.QWidget()
	formLayout = QtGui.QFormLayout()
	widget.setLayout(formLayout)

	timeSeriesNames = data.timeSeriesNames(data.Input)
	defaultChannelName = ""
	if timeSeriesNames:
		defaultChannelName = timeSeriesNames[0]

	rmNames = data.selectionGroupNames(data.ReferenceMaterial)

	drs.setSetting("IndexChannel", defaultChannelName)
	drs.setSetting("ReferenceMaterial", "C_MMC")
	drs.setSetting("Mask", False)
	drs.setSetting("MaskChannel", defaultChannelName)
	drs.setSetting("MaskCutoff", 0.1)
	drs.setSetting("MaskTrim", 0.0)
	#drs.setSetting("Lambda87", 1.42e-11)
	#drs.setSetting("Age", 0.)
	drs.setSetting("RbBias", 1.)
	drs.setSetting("CaArBias", 1.)
	drs.setSetting("PropagateError", False)

	settings = drs.settings()

	indexComboBox = QtGui.QComboBox(widget)
	indexComboBox.addItems(timeSeriesNames)
	indexComboBox.setCurrentText(settings["IndexChannel"])
	indexComboBox.currentTextChanged.connect(lambda t: drs.setSetting("IndexChannel", t))
	formLayout.addRow("Index channel", indexComboBox)

	rmComboBox = QtGui.QComboBox(widget)
	rmComboBox.addItems(rmNames)
	if settings["ReferenceMaterial"] in rmNames:
		rmComboBox.setCurrentText(settings["ReferenceMaterial"])
	else:
		rmComboBox.setCurrentText(rmNames[0])
		drs.setSetting("ReferenceMaterial", rmNames[0])
	rmComboBox.currentTextChanged.connect(lambda t: drs.setSetting("ReferenceMaterial", t))
	formLayout.addRow("Reference material", rmComboBox)

	verticalSpacer = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
	formLayout.addItem(verticalSpacer)

	maskCheckBox = QtGui.QCheckBox(widget)
	maskCheckBox.setChecked(settings["Mask"])
	maskCheckBox.toggled.connect(lambda t: drs.setSetting("Mask", bool(t)))
	formLayout.addRow("Mask", maskCheckBox)

	maskComboBox = QtGui.QComboBox(widget)
	maskComboBox.addItems(data.timeSeriesNames(data.Input))
	maskComboBox.setCurrentText(settings["MaskChannel"])
	maskComboBox.currentTextChanged.connect(lambda t: drs.setSetting("MaskChannel", t))
	formLayout.addRow("Mask channel", maskComboBox)

	maskLineEdit = QtGui.QLineEdit(widget)
	maskLineEdit.setText(settings["MaskCutoff"])
	maskLineEdit.textChanged.connect(lambda t: drs.setSetting("MaskCutoff", float(t)))
	formLayout.addRow("Mask cutoff", maskLineEdit)

	maskTrimLineEdit = QtGui.QLineEdit(widget)
	maskTrimLineEdit.setText(settings["MaskTrim"])
	maskTrimLineEdit.textChanged.connect(lambda t: drs.setSetting("MaskTrim", float(t)))
	formLayout.addRow("Mask trim", maskTrimLineEdit)

	verticalSpacer2 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
	formLayout.addItem(verticalSpacer2)

	# lambda87LineEdit = QtGui.QLineEdit(widget)
	# lambda87LineEdit.setText(settings["Lambda87"])
	# lambda87LineEdit.textChanged.connect(lambda t: drs.setSetting("Lambda87", float(t)))
	# formLayout.addRow("Lambda87", lambda87LineEdit)

	# ageLineEdit = QtGui.QLineEdit(widget)
	# ageLineEdit.setText(settings["Age"])
	# ageLineEdit.textChanged.connect(lambda t: drs.setSetting("Age", float(t)))
	# formLayout.addRow("Age", ageLineEdit)

	rbBiasLineEdit = QtGui.QLineEdit(widget)
	rbBiasLineEdit.setText(settings["RbBias"])
	rbBiasLineEdit.textChanged.connect(lambda t: drs.setSetting("RbBias", float(t)))
	formLayout.addRow("Rb Bias", rbBiasLineEdit)

	caArBiasLineEdit = QtGui.QLineEdit(widget)
	caArBiasLineEdit.setText(settings["CaArBias"])
	caArBiasLineEdit.textChanged.connect(lambda t: drs.setSetting("CaArBias", float(t)))
	formLayout.addRow("CaAr Bias", caArBiasLineEdit)

	propCheckBox = QtGui.QCheckBox(widget)
	propCheckBox.setChecked(settings["PropagateError"])
	propCheckBox.toggled.connect(lambda t: drs.setSetting("PropagateError", bool(t)))
	formLayout.addRow("Propagate Errors?", propCheckBox)

	drs.setSettingsWidget(widget)
예제 #6
0
def settingsWidget():
    """
    This function puts together a user interface to configure the DRS.

    It is important to have the last line of this function call:
    drs.setSettingsWidget(widget)
    """

    widget = QtGui.QWidget()
    formLayout = QtGui.QFormLayout()
    widget.setLayout(formLayout)

    timeSeriesNames = data.timeSeriesNames(data.Input)
    defaultChannelName = ""
    if 'TotalBeam' in timeSeriesNames:
        defaultChannelName = 'TotalBeam'
    elif timeSeriesNames:
        defaultChannelName = timeSeriesNames[0]

    drs.setSetting("IndexChannel", defaultChannelName)
    drs.setSetting("ReferenceMaterial", "CO3_shell")
    drs.setSetting("Mask", True)
    drs.setSetting("MaskChannel", defaultChannelName)
    drs.setSetting("MaskCutoff", 0.05)
    drs.setSetting("MaskTrim", 0.0)
    drs.setSetting("Age", 0.)
    drs.setSetting("Corrections", "CaAr + REE")
    drs.setSetting("Dy_Er", 1.8)
    drs.setSetting("Lu_Yb", 7.0)
    drs.setSetting("RbBias", 0.)
    drs.setSetting("CaArBias", 0.)
    drs.setSetting("Sr88_86_reference", 8.37520938)  #Konter & Storm (2014)
    drs.setSetting("Rb87_85_reference", 0.385710)  #Konter & Storm (2014)
    drs.setSetting("CaPOEqType", 'Linear')
    drs.setSetting("CaPO_RMs", [])

    drs.setSetting("PropagateError", False)

    settings = drs.settings()

    indexComboBox = QtGui.QComboBox(widget)
    indexComboBox.addItems(timeSeriesNames)
    indexComboBox.setCurrentText(settings["IndexChannel"])
    indexComboBox.textActivated.connect(
        lambda t: drs.setSetting("IndexChannel", t))
    formLayout.addRow("Index channel", indexComboBox)

    def updateIndexCombo():
        timeSeriesNames = data.timeSeriesNames(data.Input)
        indexComboBox.clear()
        indexComboBox.addItems(timeSeriesNames)

    data.dataChanged.connect(updateIndexCombo)

    rmComboBox = QtGui.QComboBox(widget)
    rmNames = data.selectionGroupNames(data.ReferenceMaterial)
    rmComboBox.addItems(rmNames)
    if settings["ReferenceMaterial"] in rmNames:
        rmComboBox.setCurrentText(settings["ReferenceMaterial"])
        drs.setSetting("ReferenceMaterial", settings["ReferenceMaterial"])

    rmComboBox.textActivated.connect(
        lambda t: drs.setSetting("ReferenceMaterial", t))
    formLayout.addRow("Reference material", rmComboBox)

    def updateRMCombo():
        rmNames = data.selectionGroupNames(data.ReferenceMaterial)
        rmComboBox.clear()
        rmComboBox.addItems(rmNames)

    data.selectionGroupsChanged.connect(updateRMCombo)

    verticalSpacer = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum,
                                       QtGui.QSizePolicy.Minimum)
    formLayout.addItem(verticalSpacer)

    maskCheckBox = QtGui.QCheckBox(widget)
    maskCheckBox.setChecked(settings["Mask"])
    maskCheckBox.toggled.connect(lambda t: drs.setSetting("Mask", bool(t)))
    formLayout.addRow("Mask", maskCheckBox)

    maskComboBox = QtGui.QComboBox(widget)
    maskComboBox.addItems(data.timeSeriesNames(data.Input))
    maskComboBox.setCurrentText(settings["MaskChannel"])
    maskComboBox.currentTextChanged.connect(
        lambda t: drs.setSetting("MaskChannel", t))
    formLayout.addRow("Mask channel", maskComboBox)

    maskLineEdit = QtGui.QLineEdit(widget)
    maskLineEdit.setText(settings["MaskCutoff"])
    maskLineEdit.textChanged.connect(
        lambda t: drs.setSetting("MaskCutoff", float(t)))
    formLayout.addRow("Mask cutoff", maskLineEdit)

    maskTrimLineEdit = QtGui.QLineEdit(widget)
    maskTrimLineEdit.setText(settings["MaskTrim"])
    maskTrimLineEdit.textChanged.connect(
        lambda t: drs.setSetting("MaskTrim", float(t)))
    formLayout.addRow("Mask trim", maskTrimLineEdit)

    verticalSpacer2 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum,
                                        QtGui.QSizePolicy.Minimum)
    formLayout.addItem(verticalSpacer2)

    ageLineEdit = QtGui.QLineEdit(widget)
    ageLineEdit.setText(settings["Age"])
    ageLineEdit.textChanged.connect(lambda t: drs.setSetting("Age", float(t)))
    formLayout.addRow("Age", ageLineEdit)

    rbBiasLineEdit = QtGui.QLineEdit(widget)
    rbBiasLineEdit.setText(settings["RbBias"])
    rbBiasLineEdit.textChanged.connect(
        lambda t: drs.setSetting("RbBias", float(t)))
    formLayout.addRow("Rb Bias Adjustment", rbBiasLineEdit)

    caArBiasLineEdit = QtGui.QLineEdit(widget)
    caArBiasLineEdit.setText(settings["CaArBias"])
    caArBiasLineEdit.textChanged.connect(
        lambda t: drs.setSetting("CaArBias", float(t)))
    formLayout.addRow("CaAr Bias Adjustment", caArBiasLineEdit)

    verticalSpacer3 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum,
                                        QtGui.QSizePolicy.Minimum)
    formLayout.addItem(verticalSpacer3)

    corrComboBox = QtGui.QComboBox(widget)
    corrComboBox.addItems(['CaAr + REE', 'CaAr only'])
    corrComboBox.setCurrentText(settings['Corrections'])
    corrComboBox.currentTextChanged.connect(
        lambda t: drs.setSetting('Corrections', t))
    formLayout.addRow("Corrections", corrComboBox)

    verticalSpacer4 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum,
                                        QtGui.QSizePolicy.Minimum)
    formLayout.addItem(verticalSpacer4)

    luYbLineEdit = QtGui.QLineEdit(widget)
    luYbLineEdit.setText(settings["Lu_Yb"])
    luYbLineEdit.textChanged.connect(
        lambda t: drs.setSetting("Lu_Yb", float(t)))
    formLayout.addRow("Lu/Yb ratio", luYbLineEdit)

    dyErLineEdit = QtGui.QLineEdit(widget)
    dyErLineEdit.setText(settings["Dy_Er"])
    dyErLineEdit.textChanged.connect(
        lambda t: drs.setSetting("Dy_Er", float(t)))
    formLayout.addRow("Dy/Er ratio", dyErLineEdit)

    verticalSpacer5 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum,
                                        QtGui.QSizePolicy.Minimum)
    formLayout.addItem(verticalSpacer5)

    sr88_86_refLineEdit = QtGui.QLineEdit(widget)
    sr88_86_refLineEdit.setText(settings["Sr88_86_reference"])
    sr88_86_refLineEdit.textChanged.connect(
        lambda t: drs.setSetting("Sr88_86_reference", float(t)))
    formLayout.addRow("Reference Sr88/Sr86 value", sr88_86_refLineEdit)

    rb87_85_refLineEdit = QtGui.QLineEdit(widget)
    rb87_85_refLineEdit.setText(settings["Rb87_85_reference"])
    rb87_85_refLineEdit.textChanged.connect(
        lambda t: drs.setSetting("Rb87_85_reference", float(t)))
    formLayout.addRow("Reference Rb87/Rb85 value", rb87_85_refLineEdit)

    verticalSpacer6 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum,
                                        QtGui.QSizePolicy.Minimum)
    formLayout.addItem(verticalSpacer6)

    # CaPO controls
    capoEqType = QtGui.QComboBox(widget)
    capoEqType.addItems(['Linear', 'Exponential Decay'])
    capoEqType.setCurrentText(settings["CaPOEqType"])
    capoEqType.currentTextChanged.connect(
        lambda t: drs.setSetting("CaPOEqType", t))
    formLayout.addRow("CaPO Fit Eqn", capoEqType)

    setExtButton = QtGui.QToolButton(widget)
    rmMenu = ReferenceMaterialsMenu(setExtButton)
    rmMenu.rmsChanged.connect(lambda l: drs.setSetting("CaPO_RMs", l))
    setExtButton.setMenu(rmMenu)
    setExtButton.setPopupMode(QtGui.QToolButton.InstantPopup)
    setExtButton.setIcon(CUI().icon('trophy'))
    setExtButton.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
    formLayout.addRow("RMs for CaPO correction:", setExtButton)

    # Plot for CaPO correction
    formLayout.addRow('CaPO Correction fit', PLOT)

    # Prop errors controls
    propCheckBox = QtGui.QCheckBox(widget)
    propCheckBox.setChecked(settings["PropagateError"])
    propCheckBox.toggled.connect(
        lambda t: drs.setSetting("PropagateError", bool(t)))
    formLayout.addRow("Propagate Errors?", propCheckBox)

    # Restore settings
    try:
        settings = drs.settings()
        print('Restoring settings...')
        print(settings)
        rmComboBox.setCurrentText(settings["ReferenceMaterial"])
    except KeyError:
        pass

    drs.setSettingsWidget(widget)
예제 #7
0
def settingsWidget():
    """
    This function puts together a user interface to configure the DRS.

    It is important to have the last line of this function call:
    drs.setSettingsWidget(widget)
    """

    widget = QtGui.QWidget()
    formLayout = QtGui.QFormLayout()
    widget.setLayout(formLayout)

    timeSeriesNames = data.timeSeriesNames(data.Input)
    defaultChannelName = ""
    if timeSeriesNames:
        defaultChannelName = timeSeriesNames[0]

    rmNames = data.selectionGroupNames(data.ReferenceMaterial)

    drs.setSetting("IndexChannel", defaultChannelName)
    drs.setSetting("ReferenceMaterial", "A_MAD")
    drs.setSetting("Mask", False)
    drs.setSetting("MaskChannel", defaultChannelName)
    drs.setSetting("MaskCutoff", 0.1)
    drs.setSetting("MaskTrim", 0.0)

    settings = drs.settings()

    indexComboBox = QtGui.QComboBox(widget)
    indexComboBox.addItems(timeSeriesNames)
    indexComboBox.setCurrentText(settings["IndexChannel"])
    indexComboBox.currentTextChanged.connect(
        lambda t: drs.setSetting("IndexChannel", t))
    formLayout.addRow("Index channel", indexComboBox)

    rmComboBox = QtGui.QComboBox(widget)
    rmComboBox.addItems(rmNames)
    rmComboBox.setCurrentText(settings["ReferenceMaterial"])
    rmComboBox.currentTextChanged.connect(
        lambda t: drs.setSetting("ReferenceMaterial", t))
    formLayout.addRow("Reference material", rmComboBox)

    verticalSpacer = QtGui.QSpacerItem(
        20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
    formLayout.addItem(verticalSpacer)

    maskCheckBox = QtGui.QCheckBox(widget)
    maskCheckBox.setChecked(settings["Mask"])
    maskCheckBox.toggled.connect(lambda t: drs.setSetting("Mask", bool(t)))
    formLayout.addRow("Mask", maskCheckBox)

    maskComboBox = QtGui.QComboBox(widget)
    maskComboBox.addItems(data.timeSeriesNames(data.Input))
    maskComboBox.setCurrentText(settings["MaskChannel"])
    maskComboBox.currentTextChanged.connect(
        lambda t: drs.setSetting("MaskChannel", t))
    formLayout.addRow("Mask channel", maskComboBox)

    maskLineEdit = QtGui.QLineEdit(widget)
    maskLineEdit.setText(settings["MaskCutoff"])
    maskLineEdit.textChanged.connect(
        lambda t: drs.setSetting("MaskCutoff", float(t)))
    formLayout.addRow("Mask cutoff", maskLineEdit)

    maskTrimLineEdit = QtGui.QLineEdit(widget)
    maskTrimLineEdit.setText(settings["MaskTrim"])
    maskTrimLineEdit.textChanged.connect(
        lambda t: drs.setSetting("MaskTrim", float(t)))
    formLayout.addRow("Mask trim", maskTrimLineEdit)

    verticalSpacer2 = QtGui.QSpacerItem(
        20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
    formLayout.addItem(verticalSpacer2)

    drs.setSettingsWidget(widget)
예제 #8
0
def settingsWidget():
    """
	This function puts together a user interface to configure the DRS.
	
	It is important to have the last line of this function call:
	drs.setSettingsWidget(widget)
	"""

    widget = QtGui.QWidget()
    formLayout = QtGui.QFormLayout()
    widget.setLayout(formLayout)

    timeSeriesNames = data.timeSeriesNames(data.Input)
    defaultChannelName = ""
    if timeSeriesNames:
        defaultChannelName = timeSeriesNames[0]

    rmNames = data.selectionGroupNames(data.ReferenceMaterial)

    drs.setSetting("IndexChannel", defaultChannelName)
    drs.setSetting("ReferenceMaterial", "Z_Plesovice")
    drs.setSetting("MaskChannel", defaultChannelName)
    drs.setSetting("MaskCutoff", 0.1)
    drs.setSetting("MaskTrim", 0.0)
    drs.setSetting("HfTrue", 0.7325)
    drs.setSetting("Yb31", 1.132685)
    drs.setSetting("Yb63", 0.796218)
    drs.setSetting("Age", 0)
    drs.setSetting("PropagateError", False)

    settings = drs.settings()

    indexComboBox = QtGui.QComboBox(widget)
    indexComboBox.addItems(timeSeriesNames)
    indexComboBox.setCurrentText(settings["IndexChannel"])
    indexComboBox.currentTextChanged.connect(
        lambda t: drs.setSetting("IndexChannel", t))
    formLayout.addRow("Index channel", indexComboBox)

    rmComboBox = QtGui.QComboBox(widget)
    rmComboBox.addItems(rmNames)
    rmComboBox.setCurrentText(settings["ReferenceMaterial"])
    rmComboBox.currentTextChanged.connect(
        lambda t: drs.setSetting("ReferenceMaterial", t))
    formLayout.addRow("Reference material", rmComboBox)

    maskComboBox = QtGui.QComboBox(widget)
    maskComboBox.addItems(data.timeSeriesNames(data.Input))
    maskComboBox.setCurrentText(settings["MaskChannel"])
    maskComboBox.currentTextChanged.connect(
        lambda t: drs.setSetting("MaskChannel", t))
    formLayout.addRow("Mask channel", maskComboBox)

    maskLineEdit = QtGui.QLineEdit(widget)
    maskLineEdit.setText(settings["MaskCutoff"])
    maskLineEdit.textChanged.connect(
        lambda t: drs.setSetting("MaskCutoff", float(t)))
    formLayout.addRow("Mask cutoff", maskLineEdit)

    maskTrimLineEdit = QtGui.QLineEdit(widget)
    maskTrimLineEdit.setText(settings["MaskTrim"])
    maskTrimLineEdit.textChanged.connect(
        lambda t: drs.setSetting("MaskTrim", float(t)))
    formLayout.addRow("Mask trim", maskTrimLineEdit)

    hfTrueLineEdit = QtGui.QLineEdit(widget)
    hfTrueLineEdit.setText(settings["HfTrue"])
    hfTrueLineEdit.textChanged.connect(
        lambda t: drs.setSetting("HfTrue", float(t)))
    formLayout.addRow("Hf true", hfTrueLineEdit)

    Yb31LineEdit = QtGui.QLineEdit(widget)
    Yb31LineEdit.setText(settings["Yb31"])
    Yb31LineEdit.textChanged.connect(
        lambda t: drs.setSetting("Yb31", float(t)))
    formLayout.addRow("173Yb/171Yb", Yb31LineEdit)

    Yb63LineEdit = QtGui.QLineEdit(widget)
    Yb63LineEdit.setText(settings["Yb63"])
    Yb63LineEdit.textChanged.connect(
        lambda t: drs.setSetting("Yb63", float(t)))
    formLayout.addRow("176Yb/173Yb", Yb63LineEdit)

    ageLineEdit = QtGui.QLineEdit(widget)
    ageLineEdit.setText(settings["Age"])
    ageLineEdit.textChanged.connect(lambda t: drs.setSetting("Age", float(t)))
    formLayout.addRow("Age", ageLineEdit)

    propCheckBox = QtGui.QCheckBox(widget)
    propCheckBox.setChecked(settings["PropagateError"])
    propCheckBox.toggled.connect(
        lambda t: drs.setSetting("PropagateError", bool(t)))
    formLayout.addRow("PropagateError", propCheckBox)

    drs.setSettingsWidget(widget)