diff --git a/README.rst b/README.rst index e4dd40b..9691775 100644 --- a/README.rst +++ b/README.rst @@ -10,8 +10,6 @@ Why using this software and not one of the dozens of alternatives already existi Designed by observers for observers. With lots of love and hopefully bug-free. - - .. image:: https://travis-ci.org/vbonvin/POUET.svg?branch=master :target: https://travis-ci.org/vbonvin/POUET :alt: CI Status diff --git a/docs/source/tutorial/basic_loadandsort.rst b/docs/source/tutorial/basic_loadandsort.rst index 692b6ce..2dc83e5 100644 --- a/docs/source/tutorial/basic_loadandsort.rst +++ b/docs/source/tutorial/basic_loadandsort.rst @@ -109,6 +109,7 @@ The sorting criteria are the following: * Airmass smaller than * Sun distance larger than [degree] * Moon distance larger than [degree] + * Wind Angle larger than 90 [degree] * Name containing [string pattern] * Right Ascension (Alpha) earlier/later than [HH:MM:SS], from 00:00:00 to 24:00:00 * Declination (Delta) higher/lower than [DD:MM:SS], from -90:00:00 to +90:00:00 @@ -116,6 +117,8 @@ The sorting criteria are the following: * Observability larger than 0. The observability is a combination of airmass, moon distance, wind, cloud coverage, etc... that provide a "smart" way of sorting targets. * Selected/unselected targets. You can check targets in the list directly. +.. note:: The value of the wind angle below which your targets are hidden (default = 90 degrees) can be changed in the configuration file (see :ref:`customsite`). + .. note:: In future versions of POUET, users will be able to define their own observability formula per observing program. The default one currently used can be read at :meth:`~obs.compute_observability`. The ``Reset list`` button make all the targets visible again. The same can be achieved by unchecking the sorting boxes and clicking on the ``Sort`` button. diff --git a/docs/source/tutorial/plots/POUET_defaultconfig.png b/docs/source/tutorial/plots/POUET_defaultconfig.png index 2742b51..73a704c 100644 Binary files a/docs/source/tutorial/plots/POUET_defaultconfig.png and b/docs/source/tutorial/plots/POUET_defaultconfig.png differ diff --git a/docs/source/tutorial/plots/POUET_example_sort.png b/docs/source/tutorial/plots/POUET_example_sort.png index a4c7f63..5a47504 100644 Binary files a/docs/source/tutorial/plots/POUET_example_sort.png and b/docs/source/tutorial/plots/POUET_example_sort.png differ diff --git a/pouet/config/settings.cfg b/pouet/config/settings.cfg index a3e47b5..8edcb11 100644 --- a/pouet/config/settings.cfg +++ b/pouet/config/settings.cfg @@ -32,3 +32,8 @@ showallskycoordinates: 60 showallskytargets: 60 +[misc] + +# What is the minimum angle [deg] to wind below which you want to be able to hide +# the observables from the list view? +minangletowinddisplay = 90 \ No newline at end of file diff --git a/pouet/design.py b/pouet/design.py index d2d59ba..906e089 100755 --- a/pouet/design.py +++ b/pouet/design.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'design.ui' # -# Created by: PyQt5 UI code generator 5.10 +# Created by: PyQt5 UI code generator 5.6 # # WARNING! All changes made in this file will be lost! diff --git a/pouet/design_scalable.py b/pouet/design_scalable.py index 42d904e..1504ea6 100644 --- a/pouet/design_scalable.py +++ b/pouet/design_scalable.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'design_scalable.ui' # -# Created by: PyQt5 UI code generator 5.10 +# Created by: PyQt5 UI code generator 5.6 # # WARNING! All changes made in this file will be lost! @@ -11,234 +11,11 @@ class Ui_POUET(object): def setupUi(self, POUET): POUET.setObjectName("POUET") - POUET.resize(1248, 848) + POUET.resize(1253, 824) self.centralwidget = QtWidgets.QWidget(POUET) self.centralwidget.setObjectName("centralwidget") self.gridLayout_3 = QtWidgets.QGridLayout(self.centralwidget) self.gridLayout_3.setObjectName("gridLayout_3") - self.dateStatusLayout = QtWidgets.QHBoxLayout() - self.dateStatusLayout.setObjectName("dateStatusLayout") - self.label = QtWidgets.QLabel(self.centralwidget) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Minimum) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth()) - self.label.setSizePolicy(sizePolicy) - self.label.setMinimumSize(QtCore.QSize(0, 23)) - self.label.setBaseSize(QtCore.QSize(0, 23)) - self.label.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) - self.label.setObjectName("label") - self.dateStatusLayout.addWidget(self.label) - self.configTime = QtWidgets.QDateTimeEdit(self.centralwidget) - self.configTime.setAutoFillBackground(False) - self.configTime.setCalendarPopup(True) - self.configTime.setObjectName("configTime") - self.dateStatusLayout.addWidget(self.configTime) - self.configTimenow = QtWidgets.QPushButton(self.centralwidget) - self.configTimenow.setObjectName("configTimenow") - self.dateStatusLayout.addWidget(self.configTimenow) - self.configUpdate = QtWidgets.QPushButton(self.centralwidget) - self.configUpdate.setObjectName("configUpdate") - self.dateStatusLayout.addWidget(self.configUpdate) - self.statusFrame = QtWidgets.QFrame(self.centralwidget) - self.statusFrame.setBaseSize(QtCore.QSize(340, 50)) - self.statusFrame.setFrameShape(QtWidgets.QFrame.StyledPanel) - self.statusFrame.setFrameShadow(QtWidgets.QFrame.Raised) - self.statusFrame.setObjectName("statusFrame") - self.horizontalLayout = QtWidgets.QHBoxLayout(self.statusFrame) - self.horizontalLayout.setObjectName("horizontalLayout") - self.statusLabel = QtWidgets.QLabel(self.statusFrame) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.statusLabel.sizePolicy().hasHeightForWidth()) - self.statusLabel.setSizePolicy(sizePolicy) - self.statusLabel.setMinimumSize(QtCore.QSize(200, 30)) - self.statusLabel.setMaximumSize(QtCore.QSize(16777215, 16777215)) - self.statusLabel.setBaseSize(QtCore.QSize(340, 50)) - self.statusLabel.setObjectName("statusLabel") - self.horizontalLayout.addWidget(self.statusLabel) - self.dateStatusLayout.addWidget(self.statusFrame) - self.gridLayout_3.addLayout(self.dateStatusLayout, 0, 0, 1, 1) - self.verticalLayout_12 = QtWidgets.QVBoxLayout() - self.verticalLayout_12.setObjectName("verticalLayout_12") - self.allSkyUpdateLayout = QtWidgets.QHBoxLayout() - self.allSkyUpdateLayout.setSpacing(6) - self.allSkyUpdateLayout.setObjectName("allSkyUpdateLayout") - self.allSkyUpdateLabel = QtWidgets.QLabel(self.centralwidget) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.allSkyUpdateLabel.sizePolicy().hasHeightForWidth()) - self.allSkyUpdateLabel.setSizePolicy(sizePolicy) - font = QtGui.QFont() - font.setBold(True) - font.setWeight(75) - self.allSkyUpdateLabel.setFont(font) - self.allSkyUpdateLabel.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) - self.allSkyUpdateLabel.setObjectName("allSkyUpdateLabel") - self.allSkyUpdateLayout.addWidget(self.allSkyUpdateLabel) - self.allSkyRefresh = QtWidgets.QPushButton(self.centralwidget) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.allSkyRefresh.sizePolicy().hasHeightForWidth()) - self.allSkyRefresh.setSizePolicy(sizePolicy) - self.allSkyRefresh.setObjectName("allSkyRefresh") - self.allSkyUpdateLayout.addWidget(self.allSkyRefresh) - self.allSkyUpdateValueLayout = QtWidgets.QVBoxLayout() - self.allSkyUpdateValueLayout.setObjectName("allSkyUpdateValueLayout") - self.allSkyUpdateValue = QtWidgets.QLabel(self.centralwidget) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.allSkyUpdateValue.sizePolicy().hasHeightForWidth()) - self.allSkyUpdateValue.setSizePolicy(sizePolicy) - self.allSkyUpdateValue.setMinimumSize(QtCore.QSize(150, 0)) - font = QtGui.QFont() - font.setPointSize(8) - font.setBold(False) - font.setWeight(50) - self.allSkyUpdateValue.setFont(font) - self.allSkyUpdateValue.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) - self.allSkyUpdateValue.setObjectName("allSkyUpdateValue") - self.allSkyUpdateValueLayout.addWidget(self.allSkyUpdateValue) - self.allSkyUpdateWindValue = QtWidgets.QLabel(self.centralwidget) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.allSkyUpdateWindValue.sizePolicy().hasHeightForWidth()) - self.allSkyUpdateWindValue.setSizePolicy(sizePolicy) - self.allSkyUpdateWindValue.setMinimumSize(QtCore.QSize(150, 0)) - font = QtGui.QFont() - font.setPointSize(8) - font.setBold(False) - font.setWeight(50) - self.allSkyUpdateWindValue.setFont(font) - self.allSkyUpdateWindValue.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) - self.allSkyUpdateWindValue.setObjectName("allSkyUpdateWindValue") - self.allSkyUpdateValueLayout.addWidget(self.allSkyUpdateWindValue) - self.allSkyUpdateLayout.addLayout(self.allSkyUpdateValueLayout) - self.verticalLayout_12.addLayout(self.allSkyUpdateLayout) - self.allskyViewContainer = QtWidgets.QWidget(self.centralwidget) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Expanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.allskyViewContainer.sizePolicy().hasHeightForWidth()) - self.allskyViewContainer.setSizePolicy(sizePolicy) - self.allskyViewContainer.setMinimumSize(QtCore.QSize(466, 350)) - self.allskyViewContainer.setMaximumSize(QtCore.QSize(16777215, 16777215)) - self.allskyViewContainer.setBaseSize(QtCore.QSize(300, 300)) - self.allskyViewContainer.setObjectName("allskyViewContainer") - self.allskyViewLayer = QtWidgets.QWidget(self.allskyViewContainer) - self.allskyViewLayer.setGeometry(QtCore.QRect(0, 0, 466, 350)) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Expanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.allskyViewLayer.sizePolicy().hasHeightForWidth()) - self.allskyViewLayer.setSizePolicy(sizePolicy) - self.allskyViewLayer.setMinimumSize(QtCore.QSize(250, 250)) - self.allskyViewLayer.setBaseSize(QtCore.QSize(300, 300)) - self.allskyViewLayer.setObjectName("allskyViewLayer") - self.allskyViewLayerTargets = QtWidgets.QWidget(self.allskyViewContainer) - self.allskyViewLayerTargets.setGeometry(QtCore.QRect(0, 0, 466, 350)) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Expanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.allskyViewLayerTargets.sizePolicy().hasHeightForWidth()) - self.allskyViewLayerTargets.setSizePolicy(sizePolicy) - self.allskyViewLayerTargets.setMinimumSize(QtCore.QSize(250, 350)) - self.allskyViewLayerTargets.setBaseSize(QtCore.QSize(300, 300)) - self.allskyViewLayerTargets.setObjectName("allskyViewLayerTargets") - self.allskyView = QtWidgets.QWidget(self.allskyViewContainer) - self.allskyView.setGeometry(QtCore.QRect(0, 0, 466, 350)) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Expanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.allskyView.sizePolicy().hasHeightForWidth()) - self.allskyView.setSizePolicy(sizePolicy) - self.allskyView.setMinimumSize(QtCore.QSize(250, 250)) - self.allskyView.setBaseSize(QtCore.QSize(300, 300)) - self.allskyView.setObjectName("allskyView") - self.allskyView.raise_() - self.allskyViewLayer.raise_() - self.allskyViewLayerTargets.raise_() - self.verticalLayout_12.addWidget(self.allskyViewContainer) - self.visibilityLabelsLayout = QtWidgets.QHBoxLayout() - self.visibilityLabelsLayout.setObjectName("visibilityLabelsLayout") - self.visibilityLabel = QtWidgets.QLabel(self.centralwidget) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.visibilityLabel.sizePolicy().hasHeightForWidth()) - self.visibilityLabel.setSizePolicy(sizePolicy) - font = QtGui.QFont() - font.setBold(True) - font.setWeight(75) - self.visibilityLabel.setFont(font) - self.visibilityLabel.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) - self.visibilityLabel.setObjectName("visibilityLabel") - self.visibilityLabelsLayout.addWidget(self.visibilityLabel) - self.visibilityAirmassLabel = QtWidgets.QLabel(self.centralwidget) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.visibilityAirmassLabel.sizePolicy().hasHeightForWidth()) - self.visibilityAirmassLabel.setSizePolicy(sizePolicy) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.visibilityAirmassLabel.setFont(font) - self.visibilityAirmassLabel.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) - self.visibilityAirmassLabel.setObjectName("visibilityAirmassLabel") - self.visibilityLabelsLayout.addWidget(self.visibilityAirmassLabel) - self.visibilityAirmassValue = QtWidgets.QDoubleSpinBox(self.centralwidget) - self.visibilityAirmassValue.setDecimals(1) - self.visibilityAirmassValue.setMinimum(1.1) - self.visibilityAirmassValue.setMaximum(4.0) - self.visibilityAirmassValue.setSingleStep(0.1) - self.visibilityAirmassValue.setProperty("value", 1.5) - self.visibilityAirmassValue.setObjectName("visibilityAirmassValue") - self.visibilityLabelsLayout.addWidget(self.visibilityAirmassValue) - self.visibilityMoonAngleLabel = QtWidgets.QLabel(self.centralwidget) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.visibilityMoonAngleLabel.sizePolicy().hasHeightForWidth()) - self.visibilityMoonAngleLabel.setSizePolicy(sizePolicy) - font = QtGui.QFont() - font.setBold(False) - font.setWeight(50) - self.visibilityMoonAngleLabel.setFont(font) - self.visibilityMoonAngleLabel.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) - self.visibilityMoonAngleLabel.setObjectName("visibilityMoonAngleLabel") - self.visibilityLabelsLayout.addWidget(self.visibilityMoonAngleLabel) - self.visibilityMoonAngleValue = QtWidgets.QSpinBox(self.centralwidget) - self.visibilityMoonAngleValue.setMaximum(180) - self.visibilityMoonAngleValue.setProperty("value", 40) - self.visibilityMoonAngleValue.setObjectName("visibilityMoonAngleValue") - self.visibilityLabelsLayout.addWidget(self.visibilityMoonAngleValue) - self.visibilityDraw = QtWidgets.QPushButton(self.centralwidget) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.visibilityDraw.sizePolicy().hasHeightForWidth()) - self.visibilityDraw.setSizePolicy(sizePolicy) - self.visibilityDraw.setObjectName("visibilityDraw") - self.visibilityLabelsLayout.addWidget(self.visibilityDraw) - self.verticalLayout_12.addLayout(self.visibilityLabelsLayout) - self.visibilityView = QtWidgets.QWidget(self.centralwidget) - self.visibilityView.setEnabled(True) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Expanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.visibilityView.sizePolicy().hasHeightForWidth()) - self.visibilityView.setSizePolicy(sizePolicy) - self.visibilityView.setMinimumSize(QtCore.QSize(250, 350)) - self.visibilityView.setBaseSize(QtCore.QSize(300, 300)) - self.visibilityView.setObjectName("visibilityView") - self.verticalLayout_12.addWidget(self.visibilityView) - self.gridLayout_3.addLayout(self.verticalLayout_12, 0, 1, 2, 1) self.tabWidget = QtWidgets.QTabWidget(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) @@ -252,9 +29,12 @@ def setupUi(self, POUET): self.obs = QtWidgets.QWidget() self.obs.setObjectName("obs") self.gridLayout_2 = QtWidgets.QGridLayout(self.obs) + self.gridLayout_2.setContentsMargins(0, 0, 0, 0) self.gridLayout_2.setObjectName("gridLayout_2") self.verticalLayout_2 = QtWidgets.QVBoxLayout() self.verticalLayout_2.setObjectName("verticalLayout_2") + self.gridLayout = QtWidgets.QGridLayout() + self.gridLayout.setObjectName("gridLayout") self.horizontalLayout_2 = QtWidgets.QHBoxLayout() self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.loadObs = QtWidgets.QPushButton(self.obs) @@ -279,18 +59,23 @@ def setupUi(self, POUET): self.updatePlotObs = QtWidgets.QPushButton(self.obs) self.updatePlotObs.setObjectName("updatePlotObs") self.horizontalLayout_2.addWidget(self.updatePlotObs) - self.verticalLayout_2.addLayout(self.horizontalLayout_2) - self.line_11 = QtWidgets.QFrame(self.obs) - self.line_11.setFrameShape(QtWidgets.QFrame.HLine) - self.line_11.setFrameShadow(QtWidgets.QFrame.Sunken) - self.line_11.setObjectName("line_11") - self.verticalLayout_2.addWidget(self.line_11) - self.gridLayout = QtWidgets.QGridLayout() - self.gridLayout.setObjectName("gridLayout") + self.gridLayout.addLayout(self.horizontalLayout_2, 0, 0, 1, 7) + self.airmassLayout = QtWidgets.QHBoxLayout() + self.airmassLayout.setObjectName("airmassLayout") + self.toggleAirmassObs = QtWidgets.QCheckBox(self.obs) + self.toggleAirmassObs.setObjectName("toggleAirmassObs") + self.airmassLayout.addWidget(self.toggleAirmassObs) + self.airmassMaxObs = QtWidgets.QDoubleSpinBox(self.obs) + self.airmassMaxObs.setDecimals(1) + self.airmassMaxObs.setMinimum(1.1) + self.airmassMaxObs.setMaximum(10.0) + self.airmassMaxObs.setSingleStep(0.1) + self.airmassMaxObs.setProperty("value", 2.0) + self.airmassMaxObs.setObjectName("airmassMaxObs") + self.airmassLayout.addWidget(self.airmassMaxObs) + self.gridLayout.addLayout(self.airmassLayout, 1, 0, 1, 1) self.moonLayout = QtWidgets.QHBoxLayout() self.moonLayout.setObjectName("moonLayout") - spacerItem2 = QtWidgets.QSpacerItem(37, 21, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) - self.moonLayout.addItem(spacerItem2) self.toggleMoondistObs = QtWidgets.QCheckBox(self.obs) self.toggleMoondistObs.setObjectName("toggleMoondistObs") self.moonLayout.addWidget(self.toggleMoondistObs) @@ -300,7 +85,74 @@ def setupUi(self, POUET): self.moondistMinObs.setProperty("value", 30.0) self.moondistMinObs.setObjectName("moondistMinObs") self.moonLayout.addWidget(self.moondistMinObs) - self.gridLayout.addLayout(self.moonLayout, 0, 1, 1, 2) + spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.moonLayout.addItem(spacerItem2) + self.gridLayout.addLayout(self.moonLayout, 1, 1, 1, 2) + self.sunLayout = QtWidgets.QHBoxLayout() + self.sunLayout.setObjectName("sunLayout") + self.toggleSundistObs = QtWidgets.QCheckBox(self.obs) + self.toggleSundistObs.setObjectName("toggleSundistObs") + self.sunLayout.addWidget(self.toggleSundistObs) + self.sundistMinObs = QtWidgets.QDoubleSpinBox(self.obs) + self.sundistMinObs.setDecimals(0) + self.sundistMinObs.setMaximum(180.0) + self.sundistMinObs.setProperty("value", 90.0) + self.sundistMinObs.setObjectName("sundistMinObs") + self.sunLayout.addWidget(self.sundistMinObs) + spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.sunLayout.addItem(spacerItem3) + self.gridLayout.addLayout(self.sunLayout, 1, 3, 1, 1) + self.horizontalLayout_12 = QtWidgets.QHBoxLayout() + self.horizontalLayout_12.setObjectName("horizontalLayout_12") + self.toggleWindAngleObs = QtWidgets.QCheckBox(self.obs) + self.toggleWindAngleObs.setObjectName("toggleWindAngleObs") + self.horizontalLayout_12.addWidget(self.toggleWindAngleObs) + spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout_12.addItem(spacerItem4) + self.gridLayout.addLayout(self.horizontalLayout_12, 1, 4, 1, 2) + self.nameLayout = QtWidgets.QHBoxLayout() + self.nameLayout.setObjectName("nameLayout") + self.toggleNameObs = QtWidgets.QCheckBox(self.obs) + self.toggleNameObs.setObjectName("toggleNameObs") + self.nameLayout.addWidget(self.toggleNameObs) + self.nameObs = QtWidgets.QLineEdit(self.obs) + self.nameObs.setText("") + self.nameObs.setObjectName("nameObs") + self.nameLayout.addWidget(self.nameObs) + self.gridLayout.addLayout(self.nameLayout, 1, 6, 1, 1) + self.alphaLayout = QtWidgets.QGridLayout() + self.alphaLayout.setObjectName("alphaLayout") + self.alphaMinLayout = QtWidgets.QHBoxLayout() + self.alphaMinLayout.setObjectName("alphaMinLayout") + self.toggleAlphaMinObs = QtWidgets.QCheckBox(self.obs) + self.toggleAlphaMinObs.setObjectName("toggleAlphaMinObs") + self.alphaMinLayout.addWidget(self.toggleAlphaMinObs) + self.alphaMinObs = QtWidgets.QLineEdit(self.obs) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.alphaMinObs.sizePolicy().hasHeightForWidth()) + self.alphaMinObs.setSizePolicy(sizePolicy) + self.alphaMinObs.setObjectName("alphaMinObs") + self.alphaMinLayout.addWidget(self.alphaMinObs) + self.alphaLayout.addLayout(self.alphaMinLayout, 0, 0, 1, 1) + spacerItem5 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum) + self.alphaLayout.addItem(spacerItem5, 0, 1, 2, 1) + self.alphaMaxLayout = QtWidgets.QHBoxLayout() + self.alphaMaxLayout.setObjectName("alphaMaxLayout") + self.toggleAlphaMaxObs = QtWidgets.QCheckBox(self.obs) + self.toggleAlphaMaxObs.setObjectName("toggleAlphaMaxObs") + self.alphaMaxLayout.addWidget(self.toggleAlphaMaxObs) + self.alphaMaxObs = QtWidgets.QLineEdit(self.obs) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.alphaMaxObs.sizePolicy().hasHeightForWidth()) + self.alphaMaxObs.setSizePolicy(sizePolicy) + self.alphaMaxObs.setObjectName("alphaMaxObs") + self.alphaMaxLayout.addWidget(self.alphaMaxObs) + self.alphaLayout.addLayout(self.alphaMaxLayout, 1, 0, 1, 1) + self.gridLayout.addLayout(self.alphaLayout, 2, 0, 1, 2) self.deltaLayout = QtWidgets.QGridLayout() self.deltaLayout.setObjectName("deltaLayout") self.deltaMinLayout = QtWidgets.QHBoxLayout() @@ -331,9 +183,9 @@ def setupUi(self, POUET): self.deltaMaxObs.setObjectName("deltaMaxObs") self.deltaMaxLayout.addWidget(self.deltaMaxObs) self.deltaLayout.addLayout(self.deltaMaxLayout, 1, 0, 1, 1) - spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum) - self.deltaLayout.addItem(spacerItem3, 0, 1, 2, 1) - self.gridLayout.addLayout(self.deltaLayout, 1, 2, 1, 2) + spacerItem6 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum) + self.deltaLayout.addItem(spacerItem6, 0, 1, 2, 1) + self.gridLayout.addLayout(self.deltaLayout, 2, 2, 1, 3) self.obsCloudSelectLayout = QtWidgets.QVBoxLayout() self.obsCloudSelectLayout.setObjectName("obsCloudSelectLayout") self.toggleObservabilityObs = QtWidgets.QCheckBox(self.obs) @@ -342,7 +194,7 @@ def setupUi(self, POUET): self.toggleCloudsObs = QtWidgets.QCheckBox(self.obs) self.toggleCloudsObs.setObjectName("toggleCloudsObs") self.obsCloudSelectLayout.addWidget(self.toggleCloudsObs) - self.gridLayout.addLayout(self.obsCloudSelectLayout, 1, 4, 1, 2) + self.gridLayout.addLayout(self.obsCloudSelectLayout, 2, 5, 1, 1) self.checkSelectLayout = QtWidgets.QVBoxLayout() self.checkSelectLayout.setObjectName("checkSelectLayout") self.toggleUncheckedObs = QtWidgets.QCheckBox(self.obs) @@ -351,80 +203,7 @@ def setupUi(self, POUET): self.toggleCheckedObs = QtWidgets.QCheckBox(self.obs) self.toggleCheckedObs.setObjectName("toggleCheckedObs") self.checkSelectLayout.addWidget(self.toggleCheckedObs) - self.gridLayout.addLayout(self.checkSelectLayout, 1, 6, 1, 1) - self.nameLayout = QtWidgets.QHBoxLayout() - self.nameLayout.setObjectName("nameLayout") - spacerItem4 = QtWidgets.QSpacerItem(37, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) - self.nameLayout.addItem(spacerItem4) - self.toggleNameObs = QtWidgets.QCheckBox(self.obs) - self.toggleNameObs.setObjectName("toggleNameObs") - self.nameLayout.addWidget(self.toggleNameObs) - self.nameObs = QtWidgets.QLineEdit(self.obs) - self.nameObs.setText("") - self.nameObs.setObjectName("nameObs") - self.nameLayout.addWidget(self.nameObs) - self.gridLayout.addLayout(self.nameLayout, 0, 5, 1, 2) - self.sunLayout = QtWidgets.QHBoxLayout() - self.sunLayout.setObjectName("sunLayout") - spacerItem5 = QtWidgets.QSpacerItem(37, 21, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) - self.sunLayout.addItem(spacerItem5) - self.toggleSundistObs = QtWidgets.QCheckBox(self.obs) - self.toggleSundistObs.setObjectName("toggleSundistObs") - self.sunLayout.addWidget(self.toggleSundistObs) - self.sundistMinObs = QtWidgets.QDoubleSpinBox(self.obs) - self.sundistMinObs.setDecimals(0) - self.sundistMinObs.setMaximum(180.0) - self.sundistMinObs.setProperty("value", 90.0) - self.sundistMinObs.setObjectName("sundistMinObs") - self.sunLayout.addWidget(self.sundistMinObs) - self.gridLayout.addLayout(self.sunLayout, 0, 3, 1, 2) - self.alphaLayout = QtWidgets.QGridLayout() - self.alphaLayout.setObjectName("alphaLayout") - self.alphaMinLayout = QtWidgets.QHBoxLayout() - self.alphaMinLayout.setObjectName("alphaMinLayout") - self.toggleAlphaMinObs = QtWidgets.QCheckBox(self.obs) - self.toggleAlphaMinObs.setObjectName("toggleAlphaMinObs") - self.alphaMinLayout.addWidget(self.toggleAlphaMinObs) - self.alphaMinObs = QtWidgets.QLineEdit(self.obs) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.alphaMinObs.sizePolicy().hasHeightForWidth()) - self.alphaMinObs.setSizePolicy(sizePolicy) - self.alphaMinObs.setObjectName("alphaMinObs") - self.alphaMinLayout.addWidget(self.alphaMinObs) - self.alphaLayout.addLayout(self.alphaMinLayout, 0, 0, 1, 1) - spacerItem6 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum) - self.alphaLayout.addItem(spacerItem6, 0, 1, 2, 1) - self.alphaMaxLayout = QtWidgets.QHBoxLayout() - self.alphaMaxLayout.setObjectName("alphaMaxLayout") - self.toggleAlphaMaxObs = QtWidgets.QCheckBox(self.obs) - self.toggleAlphaMaxObs.setObjectName("toggleAlphaMaxObs") - self.alphaMaxLayout.addWidget(self.toggleAlphaMaxObs) - self.alphaMaxObs = QtWidgets.QLineEdit(self.obs) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.alphaMaxObs.sizePolicy().hasHeightForWidth()) - self.alphaMaxObs.setSizePolicy(sizePolicy) - self.alphaMaxObs.setObjectName("alphaMaxObs") - self.alphaMaxLayout.addWidget(self.alphaMaxObs) - self.alphaLayout.addLayout(self.alphaMaxLayout, 1, 0, 1, 1) - self.gridLayout.addLayout(self.alphaLayout, 1, 0, 1, 2) - self.airmassLayout = QtWidgets.QHBoxLayout() - self.airmassLayout.setObjectName("airmassLayout") - self.toggleAirmassObs = QtWidgets.QCheckBox(self.obs) - self.toggleAirmassObs.setObjectName("toggleAirmassObs") - self.airmassLayout.addWidget(self.toggleAirmassObs) - self.airmassMaxObs = QtWidgets.QDoubleSpinBox(self.obs) - self.airmassMaxObs.setDecimals(1) - self.airmassMaxObs.setMinimum(1.1) - self.airmassMaxObs.setMaximum(10.0) - self.airmassMaxObs.setSingleStep(0.1) - self.airmassMaxObs.setProperty("value", 2.0) - self.airmassMaxObs.setObjectName("airmassMaxObs") - self.airmassLayout.addWidget(self.airmassMaxObs) - self.gridLayout.addLayout(self.airmassLayout, 0, 0, 1, 1) + self.gridLayout.addLayout(self.checkSelectLayout, 2, 6, 1, 1) self.verticalLayout_2.addLayout(self.gridLayout) self.listObs = QtWidgets.QTableView(self.obs) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.MinimumExpanding) @@ -467,10 +246,16 @@ def setupUi(self, POUET): self.saveExportLayout.addWidget(self.printNamesObs) self.verticalLayout_2.addLayout(self.saveExportLayout) self.gridLayout_2.addLayout(self.verticalLayout_2, 0, 0, 1, 1) + self.line_11 = QtWidgets.QFrame(self.obs) + self.line_11.setFrameShape(QtWidgets.QFrame.HLine) + self.line_11.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_11.setObjectName("line_11") + self.gridLayout_2.addWidget(self.line_11, 1, 0, 1, 1) self.tabWidget.addTab(self.obs, "") self.weather = QtWidgets.QWidget() self.weather.setObjectName("weather") self.gridLayout_5 = QtWidgets.QGridLayout(self.weather) + self.gridLayout_5.setContentsMargins(0, 0, 0, 0) self.gridLayout_5.setObjectName("gridLayout_5") self.verticalLayout_7 = QtWidgets.QVBoxLayout() self.verticalLayout_7.setObjectName("verticalLayout_7") @@ -885,6 +670,7 @@ def setupUi(self, POUET): self.config = QtWidgets.QWidget() self.config.setObjectName("config") self.gridLayout_7 = QtWidgets.QGridLayout(self.config) + self.gridLayout_7.setContentsMargins(0, 0, 0, 0) self.gridLayout_7.setObjectName("gridLayout_7") self.verticalLayout_11 = QtWidgets.QVBoxLayout() self.verticalLayout_11.setObjectName("verticalLayout_11") @@ -1050,14 +836,233 @@ def setupUi(self, POUET): self.verticalLayout.setObjectName("verticalLayout") self.tabWidget.addTab(self.log, "") self.gridLayout_3.addWidget(self.tabWidget, 1, 0, 1, 1) + self.allSkyVisibilityLayout = QtWidgets.QVBoxLayout() + self.allSkyVisibilityLayout.setObjectName("allSkyVisibilityLayout") + self.allSkyUpdateLayout = QtWidgets.QHBoxLayout() + self.allSkyUpdateLayout.setSpacing(6) + self.allSkyUpdateLayout.setObjectName("allSkyUpdateLayout") + self.allSkyUpdateLabel = QtWidgets.QLabel(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.allSkyUpdateLabel.sizePolicy().hasHeightForWidth()) + self.allSkyUpdateLabel.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.allSkyUpdateLabel.setFont(font) + self.allSkyUpdateLabel.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.allSkyUpdateLabel.setObjectName("allSkyUpdateLabel") + self.allSkyUpdateLayout.addWidget(self.allSkyUpdateLabel) + self.allSkyRefresh = QtWidgets.QPushButton(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.allSkyRefresh.sizePolicy().hasHeightForWidth()) + self.allSkyRefresh.setSizePolicy(sizePolicy) + self.allSkyRefresh.setObjectName("allSkyRefresh") + self.allSkyUpdateLayout.addWidget(self.allSkyRefresh) + self.allSkyUpdateValueLayout = QtWidgets.QVBoxLayout() + self.allSkyUpdateValueLayout.setObjectName("allSkyUpdateValueLayout") + self.allSkyUpdateValue = QtWidgets.QLabel(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.allSkyUpdateValue.sizePolicy().hasHeightForWidth()) + self.allSkyUpdateValue.setSizePolicy(sizePolicy) + self.allSkyUpdateValue.setMinimumSize(QtCore.QSize(150, 0)) + font = QtGui.QFont() + font.setPointSize(8) + font.setBold(False) + font.setWeight(50) + self.allSkyUpdateValue.setFont(font) + self.allSkyUpdateValue.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.allSkyUpdateValue.setObjectName("allSkyUpdateValue") + self.allSkyUpdateValueLayout.addWidget(self.allSkyUpdateValue) + self.allSkyUpdateWindValue = QtWidgets.QLabel(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.allSkyUpdateWindValue.sizePolicy().hasHeightForWidth()) + self.allSkyUpdateWindValue.setSizePolicy(sizePolicy) + self.allSkyUpdateWindValue.setMinimumSize(QtCore.QSize(150, 0)) + font = QtGui.QFont() + font.setPointSize(8) + font.setBold(False) + font.setWeight(50) + self.allSkyUpdateWindValue.setFont(font) + self.allSkyUpdateWindValue.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.allSkyUpdateWindValue.setObjectName("allSkyUpdateWindValue") + self.allSkyUpdateValueLayout.addWidget(self.allSkyUpdateWindValue) + self.allSkyUpdateLayout.addLayout(self.allSkyUpdateValueLayout) + self.allSkyVisibilityLayout.addLayout(self.allSkyUpdateLayout) + self.allskyViewContainer = QtWidgets.QWidget(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Expanding) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.allskyViewContainer.sizePolicy().hasHeightForWidth()) + self.allskyViewContainer.setSizePolicy(sizePolicy) + self.allskyViewContainer.setMinimumSize(QtCore.QSize(466, 350)) + self.allskyViewContainer.setMaximumSize(QtCore.QSize(16777215, 16777215)) + self.allskyViewContainer.setBaseSize(QtCore.QSize(300, 300)) + self.allskyViewContainer.setObjectName("allskyViewContainer") + self.allskyViewLayer = QtWidgets.QWidget(self.allskyViewContainer) + self.allskyViewLayer.setGeometry(QtCore.QRect(0, 0, 466, 350)) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Expanding) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.allskyViewLayer.sizePolicy().hasHeightForWidth()) + self.allskyViewLayer.setSizePolicy(sizePolicy) + self.allskyViewLayer.setMinimumSize(QtCore.QSize(250, 250)) + self.allskyViewLayer.setBaseSize(QtCore.QSize(300, 300)) + self.allskyViewLayer.setObjectName("allskyViewLayer") + self.allskyViewLayerTargets = QtWidgets.QWidget(self.allskyViewContainer) + self.allskyViewLayerTargets.setGeometry(QtCore.QRect(0, 0, 466, 350)) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Expanding) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.allskyViewLayerTargets.sizePolicy().hasHeightForWidth()) + self.allskyViewLayerTargets.setSizePolicy(sizePolicy) + self.allskyViewLayerTargets.setMinimumSize(QtCore.QSize(250, 350)) + self.allskyViewLayerTargets.setBaseSize(QtCore.QSize(300, 300)) + self.allskyViewLayerTargets.setObjectName("allskyViewLayerTargets") + self.allskyView = QtWidgets.QWidget(self.allskyViewContainer) + self.allskyView.setGeometry(QtCore.QRect(0, 0, 466, 350)) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Expanding) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.allskyView.sizePolicy().hasHeightForWidth()) + self.allskyView.setSizePolicy(sizePolicy) + self.allskyView.setMinimumSize(QtCore.QSize(250, 250)) + self.allskyView.setBaseSize(QtCore.QSize(300, 300)) + self.allskyView.setObjectName("allskyView") + self.allskyView.raise_() + self.allskyViewLayer.raise_() + self.allskyViewLayerTargets.raise_() + self.allSkyVisibilityLayout.addWidget(self.allskyViewContainer) + self.visibilityLabelsLayout = QtWidgets.QHBoxLayout() + self.visibilityLabelsLayout.setObjectName("visibilityLabelsLayout") + self.visibilityLabel = QtWidgets.QLabel(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.visibilityLabel.sizePolicy().hasHeightForWidth()) + self.visibilityLabel.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.visibilityLabel.setFont(font) + self.visibilityLabel.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.visibilityLabel.setObjectName("visibilityLabel") + self.visibilityLabelsLayout.addWidget(self.visibilityLabel) + self.visibilityAirmassLabel = QtWidgets.QLabel(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.visibilityAirmassLabel.sizePolicy().hasHeightForWidth()) + self.visibilityAirmassLabel.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.visibilityAirmassLabel.setFont(font) + self.visibilityAirmassLabel.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.visibilityAirmassLabel.setObjectName("visibilityAirmassLabel") + self.visibilityLabelsLayout.addWidget(self.visibilityAirmassLabel) + self.visibilityAirmassValue = QtWidgets.QDoubleSpinBox(self.centralwidget) + self.visibilityAirmassValue.setDecimals(1) + self.visibilityAirmassValue.setMinimum(1.1) + self.visibilityAirmassValue.setMaximum(4.0) + self.visibilityAirmassValue.setSingleStep(0.1) + self.visibilityAirmassValue.setProperty("value", 1.5) + self.visibilityAirmassValue.setObjectName("visibilityAirmassValue") + self.visibilityLabelsLayout.addWidget(self.visibilityAirmassValue) + self.visibilityMoonAngleLabel = QtWidgets.QLabel(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.visibilityMoonAngleLabel.sizePolicy().hasHeightForWidth()) + self.visibilityMoonAngleLabel.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.visibilityMoonAngleLabel.setFont(font) + self.visibilityMoonAngleLabel.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.visibilityMoonAngleLabel.setObjectName("visibilityMoonAngleLabel") + self.visibilityLabelsLayout.addWidget(self.visibilityMoonAngleLabel) + self.visibilityMoonAngleValue = QtWidgets.QSpinBox(self.centralwidget) + self.visibilityMoonAngleValue.setMaximum(180) + self.visibilityMoonAngleValue.setProperty("value", 40) + self.visibilityMoonAngleValue.setObjectName("visibilityMoonAngleValue") + self.visibilityLabelsLayout.addWidget(self.visibilityMoonAngleValue) + self.visibilityDraw = QtWidgets.QPushButton(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.visibilityDraw.sizePolicy().hasHeightForWidth()) + self.visibilityDraw.setSizePolicy(sizePolicy) + self.visibilityDraw.setObjectName("visibilityDraw") + self.visibilityLabelsLayout.addWidget(self.visibilityDraw) + self.allSkyVisibilityLayout.addLayout(self.visibilityLabelsLayout) + self.visibilityView = QtWidgets.QWidget(self.centralwidget) + self.visibilityView.setEnabled(True) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Expanding) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.visibilityView.sizePolicy().hasHeightForWidth()) + self.visibilityView.setSizePolicy(sizePolicy) + self.visibilityView.setMinimumSize(QtCore.QSize(250, 350)) + self.visibilityView.setBaseSize(QtCore.QSize(300, 300)) + self.visibilityView.setObjectName("visibilityView") + self.allSkyVisibilityLayout.addWidget(self.visibilityView) + self.gridLayout_3.addLayout(self.allSkyVisibilityLayout, 0, 1, 2, 1) + self.dateStatusLayout = QtWidgets.QHBoxLayout() + self.dateStatusLayout.setObjectName("dateStatusLayout") + self.label = QtWidgets.QLabel(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Minimum) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth()) + self.label.setSizePolicy(sizePolicy) + self.label.setMinimumSize(QtCore.QSize(0, 23)) + self.label.setBaseSize(QtCore.QSize(0, 23)) + self.label.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.label.setObjectName("label") + self.dateStatusLayout.addWidget(self.label) + self.configTime = QtWidgets.QDateTimeEdit(self.centralwidget) + self.configTime.setAutoFillBackground(False) + self.configTime.setCalendarPopup(True) + self.configTime.setObjectName("configTime") + self.dateStatusLayout.addWidget(self.configTime) + self.configTimenow = QtWidgets.QPushButton(self.centralwidget) + self.configTimenow.setObjectName("configTimenow") + self.dateStatusLayout.addWidget(self.configTimenow) + self.configUpdate = QtWidgets.QPushButton(self.centralwidget) + self.configUpdate.setObjectName("configUpdate") + self.dateStatusLayout.addWidget(self.configUpdate) + self.statusFrame = QtWidgets.QFrame(self.centralwidget) + self.statusFrame.setBaseSize(QtCore.QSize(340, 50)) + self.statusFrame.setFrameShape(QtWidgets.QFrame.StyledPanel) + self.statusFrame.setFrameShadow(QtWidgets.QFrame.Raised) + self.statusFrame.setObjectName("statusFrame") + self.horizontalLayout = QtWidgets.QHBoxLayout(self.statusFrame) + self.horizontalLayout.setObjectName("horizontalLayout") + self.statusLabel = QtWidgets.QLabel(self.statusFrame) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.statusLabel.sizePolicy().hasHeightForWidth()) + self.statusLabel.setSizePolicy(sizePolicy) + self.statusLabel.setMinimumSize(QtCore.QSize(200, 30)) + self.statusLabel.setMaximumSize(QtCore.QSize(16777215, 16777215)) + self.statusLabel.setBaseSize(QtCore.QSize(340, 50)) + self.statusLabel.setObjectName("statusLabel") + self.horizontalLayout.addWidget(self.statusLabel) + self.dateStatusLayout.addWidget(self.statusFrame) + self.gridLayout_3.addLayout(self.dateStatusLayout, 0, 0, 1, 1) POUET.setCentralWidget(self.centralwidget) self.statusbar = QtWidgets.QStatusBar(POUET) self.statusbar.setObjectName("statusbar") POUET.setStatusBar(self.statusbar) - self.menuBar = QtWidgets.QMenuBar(POUET) - self.menuBar.setGeometry(QtCore.QRect(0, 0, 1248, 25)) - self.menuBar.setObjectName("menuBar") - POUET.setMenuBar(self.menuBar) self.retranslateUi(POUET) self.tabWidget.setCurrentIndex(0) @@ -1066,26 +1071,21 @@ def setupUi(self, POUET): def retranslateUi(self, POUET): _translate = QtCore.QCoreApplication.translate POUET.setWindowTitle(_translate("POUET", "POUET")) - self.label.setText(_translate("POUET", "Date & Time (UTC)")) - self.configTime.setDisplayFormat(_translate("POUET", "dd.MM.yyyy HH:mm")) - self.configTimenow.setText(_translate("POUET", "Set to now")) - self.configUpdate.setText(_translate("POUET", "Update")) - self.statusLabel.setText(_translate("POUET", "Current Status")) - self.allSkyUpdateLabel.setText(_translate("POUET", "Current All Sky image")) - self.allSkyRefresh.setText(_translate("POUET", "Refresh now")) - self.allSkyUpdateValue.setText(_translate("POUET", "XX.XX.XXZXX:XX:XX")) - self.allSkyUpdateWindValue.setText(_translate("POUET", "XX.XX.XXZXX:XX:XX")) - self.visibilityLabel.setText(_translate("POUET", "Visibility")) - self.visibilityAirmassLabel.setText(_translate("POUET", "Airmass:")) - self.visibilityMoonAngleLabel.setText(_translate("POUET", "Angle to Moon [°]:")) - self.visibilityDraw.setText(_translate("POUET", "Draw")) self.loadObs.setText(_translate("POUET", "Load catalog")) self.loadedCatValue.setText(_translate("POUET", "No catalog loaded")) self.updateSelectall.setText(_translate("POUET", "(De)select all ")) self.displaySelectedObs.setText(_translate("POUET", "Sort")) self.displayAllObs.setText(_translate("POUET", "Reset list")) self.updatePlotObs.setText(_translate("POUET", "Display selected")) + self.toggleAirmassObs.setText(_translate("POUET", "Airmass <=")) self.toggleMoondistObs.setText(_translate("POUET", "Moon >")) + self.toggleSundistObs.setText(_translate("POUET", "Sun >")) + self.toggleWindAngleObs.setText(_translate("POUET", "WindAngle")) + self.toggleNameObs.setText(_translate("POUET", "Name")) + self.toggleAlphaMinObs.setText(_translate("POUET", "Alpha >")) + self.alphaMinObs.setText(_translate("POUET", "00:00:00")) + self.toggleAlphaMaxObs.setText(_translate("POUET", "Alpha <")) + self.alphaMaxObs.setText(_translate("POUET", "23:59:59")) self.toggleDeltaMinObs.setText(_translate("POUET", "Delta >")) self.deltaMinObs.setText(_translate("POUET", "-90:00:00")) self.toggleDeltaMaxObs.setText(_translate("POUET", "Delta <")) @@ -1094,13 +1094,6 @@ def retranslateUi(self, POUET): self.toggleCloudsObs.setText(_translate("POUET", "Clouds > 0")) self.toggleUncheckedObs.setText(_translate("POUET", "Unselected")) self.toggleCheckedObs.setText(_translate("POUET", "Selected")) - self.toggleNameObs.setText(_translate("POUET", "Name")) - self.toggleSundistObs.setText(_translate("POUET", "Sun >")) - self.toggleAlphaMinObs.setText(_translate("POUET", "Alpha >")) - self.alphaMinObs.setText(_translate("POUET", "00:00:00")) - self.toggleAlphaMaxObs.setText(_translate("POUET", "Alpha <")) - self.alphaMaxObs.setText(_translate("POUET", "23:59:59")) - self.toggleAirmassObs.setText(_translate("POUET", "Airmass <=")) self.saveObs.setText(_translate("POUET", "Export selected")) self.saveObsLabel.setText(_translate("POUET", "Save path:")) self.saveObsPath.setText(_translate("POUET", "cats/temp.pouet")) @@ -1166,6 +1159,19 @@ def retranslateUi(self, POUET): self.label_26.setText(_translate("POUET", "https://github.com/vbonvin/POUET")) self.tabWidget.setTabText(self.tabWidget.indexOf(self.config), _translate("POUET", "Configuration")) self.tabWidget.setTabText(self.tabWidget.indexOf(self.log), _translate("POUET", "View logs")) + self.allSkyUpdateLabel.setText(_translate("POUET", "Current All Sky image")) + self.allSkyRefresh.setText(_translate("POUET", "Refresh now")) + self.allSkyUpdateValue.setText(_translate("POUET", "XX.XX.XXZXX:XX:XX")) + self.allSkyUpdateWindValue.setText(_translate("POUET", "XX.XX.XXZXX:XX:XX")) + self.visibilityLabel.setText(_translate("POUET", "Visibility")) + self.visibilityAirmassLabel.setText(_translate("POUET", "Airmass:")) + self.visibilityMoonAngleLabel.setText(_translate("POUET", "Angle to Moon [°]:")) + self.visibilityDraw.setText(_translate("POUET", "Draw")) + self.label.setText(_translate("POUET", "Date & Time (UTC)")) + self.configTime.setDisplayFormat(_translate("POUET", "dd.MM.yyyy HH:mm")) + self.configTimenow.setText(_translate("POUET", "Set to now")) + self.configUpdate.setText(_translate("POUET", "Update")) + self.statusLabel.setText(_translate("POUET", "Current Status")) if __name__ == "__main__": diff --git a/pouet/design_scalable.ui b/pouet/design_scalable.ui index 51e4a20..a12fa8e 100644 --- a/pouet/design_scalable.ui +++ b/pouet/design_scalable.ui @@ -6,8 +6,8 @@ 0 0 - 1248 - 848 + 1253 + 824 @@ -15,474 +15,6 @@ - - - - - - - 0 - 0 - - - - - 0 - 23 - - - - - 0 - 23 - - - - Date & Time (UTC) - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - - - - false - - - dd.MM.yyyy HH:mm - - - true - - - - - - - Set to now - - - - - - - Update - - - - - - - - 340 - 50 - - - - QFrame::StyledPanel - - - QFrame::Raised - - - - - - - 0 - 0 - - - - - 200 - 30 - - - - - 16777215 - 16777215 - - - - - 340 - 50 - - - - Current Status - - - - - - - - - - - - - - 6 - - - - - - 0 - 0 - - - - - 75 - true - - - - Current All Sky image - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - Refresh now - - - - - - - - - - 0 - 0 - - - - - 150 - 0 - - - - - 8 - 50 - false - - - - XX.XX.XXZXX:XX:XX - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - - 150 - 0 - - - - - 8 - 50 - false - - - - XX.XX.XXZXX:XX:XX - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - - - - - 0 - 0 - - - - - 466 - 350 - - - - - 16777215 - 16777215 - - - - - 300 - 300 - - - - - - 0 - 0 - 466 - 350 - - - - - 0 - 0 - - - - - 250 - 250 - - - - - 300 - 300 - - - - - - - 0 - 0 - 466 - 350 - - - - - 0 - 0 - - - - - 250 - 350 - - - - - 300 - 300 - - - - - - - 0 - 0 - 466 - 350 - - - - - 0 - 0 - - - - - 250 - 250 - - - - - 300 - 300 - - - - allskyView - allskyViewLayer - allskyViewLayerTargets - - - - - - - - - 0 - 0 - - - - - 75 - true - - - - Visibility - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - - 50 - false - - - - Airmass: - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - - - - 1 - - - 1.100000000000000 - - - 4.000000000000000 - - - 0.100000000000000 - - - 1.500000000000000 - - - - - - - - 0 - 0 - - - - - 50 - false - - - - Angle to Moon [°]: - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - - - - 180 - - - 40 - - - - - - - - 0 - 0 - - - - Draw - - - - - - - - - true - - - - 0 - 0 - - - - - 250 - 350 - - - - - 300 - 300 - - - - - - @@ -516,105 +48,115 @@ - - - - - - Load catalog - - - - - - - No catalog loaded - - - - - - - Qt::Horizontal - - - QSizePolicy::Expanding - - - - 40 - 20 - - - - - - - - (De)select all - - - - - - - Sort - - - - - - - Reset list - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - Display selected - - - - - - - - - Qt::Horizontal - - - - - + + - + + + Load catalog + + + + + + + No catalog loaded + + + + + + + Qt::Horizontal + + + QSizePolicy::Expanding + + + + 40 + 20 + + + + + + + + (De)select all + + + + + + + Sort + + + + + + + Reset list + + + + + Qt::Horizontal - 37 - 21 + 40 + 20 + + + + Display selected + + + + + + + + + + + Airmass <= + + + + + + + 1 + + + 1.100000000000000 + + + 10.000000000000000 + + + 0.100000000000000 + + + 2.000000000000000 + + + + + + + @@ -635,66 +177,11 @@ - - - - - - - - - - Delta > - - - - - - - - 0 - 0 - - - - -90:00:00 - - - - - - - - - - - Delta < - - - - - - - - 0 - 0 - - - - 90:00:00 - - - - - - - + + Qt::Horizontal - - QSizePolicy::Minimum - 40 @@ -705,75 +192,52 @@ - - + + - + - Obs> 0 + Sun > - - - Clouds > 0 + + + 0 - - - - - - - - - - Unselected + + 180.000000000000000 - - - - - - Selected + + 90.000000000000000 - - - - - + Qt::Horizontal - 37 + 40 20 + + + + - - - Name - - - - - + - + WindAngle - - - - @@ -781,35 +245,33 @@ - 37 - 21 + 40 + 20 + + + + - + - Sun > + Name - - - 0 - - - 180.000000000000000 - - - 90.000000000000000 + + + - + @@ -877,31 +339,105 @@ - - + + + + + + + + Delta > + + + + + + + + 0 + 0 + + + + -90:00:00 + + + + + + + + + + + Delta < + + + + + + + + 0 + 0 + + + + 90:00:00 + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Minimum + + + + 40 + 20 + + + + + + + + - + - Airmass <= + Obs> 0 - - - 1 - - - 1.100000000000000 - - - 10.000000000000000 + + + Clouds > 0 - - 0.100000000000000 + + + + + + + + + + Unselected - - 2.000000000000000 + + + + + + Selected @@ -1015,6 +551,13 @@ + + + + Qt::Horizontal + + + @@ -2117,169 +1660,627 @@ - - - - - - - 75 - true - - - - Observations - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - - - - - - true - - - Show selected objects in visibility tool - - - true - - - - - - - true - - - Show selected objects in All Sky image - - - true - - - - - - - + + + + + + + 75 + true + + + + Observations + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + + + true + + + Show selected objects in visibility tool + + + true + + + + + + + true + + + Show selected objects in All Sky image + + + true + + + + + + + + + + + + + + + + 75 + true + + + + Written by Thibault Kuntzer and Vivien Bonvin, 2015-2018 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 75 + true + + + + https://github.com/vbonvin/POUET + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + View logs + + + + + 10 + 10 + 721 + 671 + + + + + QLayout::SetDefaultConstraint + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + + + + 6 + + + + + + 0 + 0 + + + + + 75 + true + + + + Current All Sky image + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + Refresh now + + + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + + 8 + 50 + false + + + + XX.XX.XXZXX:XX:XX + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + + 8 + 50 + false + + + + XX.XX.XXZXX:XX:XX + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + - - - - - - - 75 - true - - - - Written by Thibault Kuntzer and Vivien Bonvin, 2015-2018 - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - 75 - true - - - - https://github.com/vbonvin/POUET - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - + + + + + + + 0 + 0 + + + + + 466 + 350 + + + + + 16777215 + 16777215 + + + + + 300 + 300 + + + + + + 0 + 0 + 466 + 350 + + + + + 0 + 0 + + + + + 250 + 250 + + + + + 300 + 300 + + + + + + + 0 + 0 + 466 + 350 + + + + + 0 + 0 + + + + + 250 + 350 + + + + + 300 + 300 + + + + + + + 0 + 0 + 466 + 350 + + + + + 0 + 0 + + + + + 250 + 250 + + + + + 300 + 300 + + + + allskyView + allskyViewLayer + allskyViewLayerTargets + + + + + + + + + 0 + 0 + + + + + 75 + true + + + + Visibility + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + + 50 + false + + + + Airmass: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + 1 + + + 1.100000000000000 + + + 4.000000000000000 + + + 0.100000000000000 + + + 1.500000000000000 + + + + + + + + 0 + 0 + + + + + 50 + false + + + + Angle to Moon [°]: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + 180 + + + 40 + + - - - - Qt::Vertical + + + + + 0 + 0 + - - - 20 - 40 - + + Draw - + - - - - View logs - - - - - 10 - 10 - 721 - 671 - + + + + + true - - - QLayout::SetDefaultConstraint - - - 0 - - - 0 - - - 0 - - - 0 - + + + 0 + 0 + + + + + 250 + 350 + + + + + 300 + 300 + + + + + + + + + + + + + 0 + 0 + + + + + 0 + 23 + + + + + 0 + 23 + + + + Date & Time (UTC) + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + false + + + dd.MM.yyyy HH:mm + + + true + + + + + + + Set to now + + + + + + + Update + + + + + + + + 340 + 50 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + + + 0 + 0 + + + + + 200 + 30 + + + + + 16777215 + 16777215 + + + + + 340 + 50 + + + + Current Status + + + - - + + - - - - 0 - 0 - 1248 - 25 - - - diff --git a/pouet/design_small.py b/pouet/design_small.py index 4c5343d..d6878a9 100755 --- a/pouet/design_small.py +++ b/pouet/design_small.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'design_small.ui' # -# Created by: PyQt5 UI code generator 5.10 +# Created by: PyQt5 UI code generator 5.6 # # WARNING! All changes made in this file will be lost! diff --git a/pouet/main.py b/pouet/main.py index dd36f0c..77ae725 100755 --- a/pouet/main.py +++ b/pouet/main.py @@ -858,6 +858,7 @@ def hide_observables(self): airmass = self.toggleAirmassObs.isChecked() moondist = self.toggleMoondistObs.isChecked() sundist = self.toggleSundistObs.isChecked() + windangle = self.toggleWindAngleObs.isChecked() observability = self.toggleObservabilityObs.isChecked() clouds = self.toggleCloudsObs.isChecked() alphamin = self.toggleAlphaMinObs.isChecked() @@ -903,6 +904,9 @@ def hide_observables(self): if sundist: criteria.append({"id": "sundist", "min": self.sundistMinObs.value()}) + if windangle: + criteria.append({"id": "windangle", "min": float(SETTINGS["misc"]["minangletowinddisplay"])}) + if observability: criteria.append({"id": "obs", "min": 0}) @@ -968,7 +972,6 @@ def hide_observables(self): self.toggleDeltaMaxObs.setChecked(False) logging.warning("Delta max field not valid - I discard it...") - run.hide_observables(self.observables, criteria) # ALWAYS update the display after changing the hidden flag diff --git a/pouet/run.py b/pouet/run.py index 077defa..8ae6044 100755 --- a/pouet/run.py +++ b/pouet/run.py @@ -92,6 +92,9 @@ def hide_observables(observables, criteria): elif c["id"] == "sundist": if o.angletosun.degree < c["min"]: o.hidden = True + elif c["id"] == "windangle": + if o.angletowind.degree < c["min"]: + o.hidden = True elif c["id"] == "observability": if o.observability <= c["min"]: o.hidden = True