Ejemplo n.º 1
0
    def removeSelectedFeatures(self, setupObject, featStringDict):
        selectedFeatIDList = [
            featStringDict[item.text()]
            for item in self.featListWidget.selectedItems()
        ]
        selectedFeatIDSet = set(selectedFeatIDList)
        selectedFeatIDListLength = len(selectedFeatIDList)
        if selectedFeatIDListLength > 0:
            qgis.utils.iface.mainWindow().statusBar().showMessage(
                "Updating puvspr2.dat.")
            cluz_functions1.remFeaturesFromPuvspr2(setupObject,
                                                   selectedFeatIDSet)
            setupObject.abundPUKeyDict = cluz_setup.makeAbundancePUKeyDict(
                setupObject)
            cluz_setup.makeSporderDatFile(setupObject)

            qgis.utils.iface.mainWindow().statusBar().showMessage(
                "Updating target table.")
            cluz_functions1.remFeaturesFromTargetCsv_Dict(
                setupObject, selectedFeatIDSet)
            setupObject.targetDict = cluz_setup.makeTargetDict(setupObject)

            qgis.utils.iface.mainWindow().statusBar().showMessage(
                "Task successfully completed: " +
                str(selectedFeatIDListLength) + " features have been removed.")
            self.close()
        else:
            self.close()
            QMessageBox.critical(
                None, "No features selected",
                "No features were selected and so no changes have been made.")
Ejemplo n.º 2
0
    def changeEarmarkedToAvailable(self, setupObject):
        checkSetupFileLoaded(self, setupObject)
        openSetupDialogIfSetupFilesIncorrect(self, setupObject)
        checkCreateAddFiles(setupObject)

        if setupObject.setupStatus == "files_checked":
            if setupObject.abundPUKeyDict == "blank":
                setupObject.abundPUKeyDict = cluz_setup.makeAbundancePUKeyDict(
                    setupObject)

            cluz_functions3.changeEarmarkedToAvailablePUs(setupObject)
Ejemplo n.º 3
0
    def runTroubleShoot(self, setupObject):
        checkSetupFileLoaded(self, setupObject)
        openSetupDialogIfSetupFilesIncorrect(self, setupObject)
        checkCreateAddFiles(setupObject)

        if setupObject.setupStatus == "files_checked":
            cluz_setup.checkCreateSporderDat(setupObject)
            if setupObject.abundPUKeyDict == "blank":
                setupObject.abundPUKeyDict = cluz_setup.makeAbundancePUKeyDict(
                    setupObject)
            cluz_functions1.troubleShootCLUZFiles(setupObject)
Ejemplo n.º 4
0
    def showFeaturesInPU(self, setupObject):
        checkSetupFileLoaded(self, setupObject)
        openSetupDialogIfSetupFilesIncorrect(self, setupObject)
        checkCreateAddFiles(setupObject)

        if setupObject.setupStatus == "files_checked":
            if setupObject.abundPUKeyDict == "blank":
                setupObject.abundPUKeyDict = cluz_setup.makeAbundancePUKeyDict(
                    setupObject)

            identifyTool = IdentifyTool(self.iface.mapCanvas(), setupObject)
            self.iface.mapCanvas().setMapTool(identifyTool)
Ejemplo n.º 5
0
    def targetsMetDialog(self, setupObject):
        checkSetupFileLoaded(self, setupObject)
        openSetupDialogIfSetupFilesIncorrect(self, setupObject)
        setupObject.abundPUKeyDict = cluz_setup.makeAbundancePUKeyDict(
            setupObject)
        checkCreateAddFiles(setupObject)

        if setupObject.setupStatus == "files_checked":
            self.metDialog = metDialog(self, setupObject)
            # show the dialog
            self.metDialog.show()
            # Run the dialog event loop
            result = self.metDialog.exec_()
Ejemplo n.º 6
0
    def runShowDistributionFeatures(self, setupObject):
        checkSetupFileLoaded(self, setupObject)
        openSetupDialogIfSetupFilesIncorrect(self, setupObject)
        checkCreateAddFiles(setupObject)

        if setupObject.setupStatus == "files_checked":
            if setupObject.abundPUKeyDict == "blank":
                setupObject.abundPUKeyDict = cluz_setup.makeAbundancePUKeyDict(
                    setupObject)

            self.distributionDialog = distributionDialog(self, setupObject)
            # show the dialog
            self.distributionDialog.show()
            # Run the dialog event loop
            result = self.distributionDialog.exec_()
Ejemplo n.º 7
0
    def convertCsvToAbundanceData(self, setupObject):
        checkSetupFileLoaded(self, setupObject)
        openSetupDialogIfSetupFilesIncorrect(self, setupObject)
        checkCreateAddFiles(setupObject)

        if setupObject.setupStatus == "files_checked":
            if setupObject.abundPUKeyDict == "blank":
                setupObject.abundPUKeyDict = cluz_setup.makeAbundancePUKeyDict(
                    setupObject)

            self.convertCsvDialog = convertCsvDialog(self, setupObject)
            # show the dialog
            self.convertCsvDialog.show()
            # Run the dialog event loop
            result = self.convertCsvDialog.exec_()
Ejemplo n.º 8
0
    def removeSelectedFeatures(self, setupObject, featStringDict):
        selectedFeatIDList = [featStringDict[item.text()] for item in self.featListWidget.selectedItems()]
        selectedFeatIDSet = set(selectedFeatIDList)
        selectedFeatIDListLength = len(selectedFeatIDList)
        if selectedFeatIDListLength > 0:
            qgis.utils.iface.mainWindow().statusBar().showMessage("Updating puvspr2.dat.")
            cluz_functions1.remFeaturesFromPuvspr2(setupObject, selectedFeatIDSet)
            setupObject.abundPUKeyDict = cluz_setup.makeAbundancePUKeyDict(setupObject)
            cluz_setup.makeSporderDatFile(setupObject)

            qgis.utils.iface.mainWindow().statusBar().showMessage("Updating target table.")
            cluz_functions1.remFeaturesFromTargetCsv_Dict(setupObject, selectedFeatIDSet)
            setupObject.targetDict = cluz_setup.makeTargetDict(setupObject)

            qgis.utils.iface.mainWindow().statusBar().showMessage("Task successfully completed: " + str(selectedFeatIDListLength) + " features have been removed.")
            self.close()
        else:
            self.close()
            QMessageBox.critical(None, "No features selected", "No features were selected and so no changes have been made.")
Ejemplo n.º 9
0
    def recalcTargetTable(self, setupObject):
        checkSetupFileLoaded(self, setupObject)
        openSetupDialogIfSetupFilesIncorrect(self, setupObject)
        checkCreateAddFiles(setupObject)

        if setupObject.setupStatus == "files_checked":
            if setupObject.abundPUKeyDict == "blank":
                setupObject.abundPUKeyDict = cluz_setup.makeAbundancePUKeyDict(
                    setupObject)

            cluz_setup.createAndCheckCLUZFiles(setupObject)
            cluz_setup.checkAddPULayer(setupObject)
            newConTotDict = cluz_functions1.returnConTotDict(setupObject)
            targetDict = cluz_functions1.updateConTotFieldsTargetDict(
                setupObject, newConTotDict)
            setupObject.targetDict = targetDict
            cluz_setup.updateTargetCSVFromTargetDict(setupObject, targetDict)
            qgis.utils.iface.messageBar().pushMessage("Target table updated: ",
                                                      "Process completed.",
                                                      QgsMessageBar.INFO, 3)
Ejemplo n.º 10
0
    def convertLayersToAbundTable(self, setupObject):
        layerFactorCheck = True
        convFactorCheck = True
        layerList = []

        idFieldName = self.idfieldLineEdit.text()
        selectedLayerNameList = [item.text() for item in self.selectListWidget.selectedItems()]
        if len(selectedLayerNameList) == 0:
            self.close()
            qgis.utils.iface.messageBar().pushMessage("No layers selected", "No layers were selected.", QgsMessageBar.WARNING)
            layerFactorCheck = False
        else:
            listMapItems = QgsMapLayerRegistry.instance().mapLayers()
            for nameCode, layer in listMapItems.iteritems():
                layerName = layer.name()
                if layerName in selectedLayerNameList:
                    layerList.append(layer)
            for aLayer in layerList:
                provider = aLayer.dataProvider()
                aLayerName = aLayer.name()
                idFieldOrder = provider.fieldNameIndex(idFieldName)
                if idFieldOrder == -1:
                    self.close()
                    qgis.utils.iface.messageBar().pushMessage("Layer format error with " + aLayerName, "The specified ID field " + idFieldName + " is not in the layer " + aLayerName + ".", QgsMessageBar.WARNING)
                    layerFactorCheck = False
                else:
                    idField = provider.fields().field(idFieldOrder)
                    idFieldType = idField.typeName()
                    if idFieldType != "Integer":
                        self.close()
                        qgis.utils.iface.messageBar().pushMessage("Layer format error" + aLayerName, "The specified ID field " + idFieldName + " does not contain integer values.", QgsMessageBar.WARNING)
                        layerFactorCheck = False

        if layerFactorCheck:
            convFactor = 1
            if self.userRadioButton.isChecked():
                try:
                    convFactor = float(self.convLineEdit.text())
                    if convFactor <= 0:
                        self.close()
                        qgis.utils.iface.messageBar().pushMessage("Incorrect conversion value", "The conversion value must be a number greater than 0.", QgsMessageBar.WARNING)
                        convFactorCheck = False

                except:
                    self.close()
                    qgis.utils.iface.messageBar().pushMessage("Incorrect conversion value", "The conversion value must be a number greater than 0.", QgsMessageBar.WARNING)
                    convFactorCheck = False

        if layerFactorCheck and convFactorCheck:
            addAbundDict, addFeatIDList = cluz_functions1.makeVecAddAbundDict(setupObject, layerList, idFieldName, convFactor)
            existingIDSet = set(addFeatIDList).intersection(set(setupObject.targetDict.keys()))
            if len(existingIDSet) > 0:
                self.close()
                listText = ""
                for aID in existingIDSet:
                    listText += str(aID) + ", "
                    finalListText = listText[0: -2]
                qgis.utils.iface.messageBar().pushMessage("Existing features", "The abundance table already contains features with ID values of " + finalListText + ". This process will terminate without adding the new values.", QgsMessageBar.WARNING)
            else:
                if setupObject.abundPUKeyDict == "blank":
                    setupObject.abundPUKeyDict = cluz_setup.makeAbundancePUKeyDict(setupObject)
                cluz_functions1.addFeaturesToPuvspr2File(setupObject, addAbundDict)
                setupObject.abundPUKeyDict = cluz_setup.makeAbundancePUKeyDict(setupObject)
                cluz_setup.makeSporderDatFile(setupObject)

                cluz_functions1.addFeaturesToTargetCsvFile(setupObject, addAbundDict, addFeatIDList)
                setupObject.targetDict = cluz_setup.makeTargetDict(setupObject)

                self.close()
Ejemplo n.º 11
0
    def convertLayersToAbundTable(self, setupObject):
        layerFactorCheck = True
        convFactorCheck = True
        layerList = []

        idFieldName = self.idfieldLineEdit.text()
        selectedLayerNameList = [
            item.text() for item in self.selectListWidget.selectedItems()
        ]
        if len(selectedLayerNameList) == 0:
            self.close()
            qgis.utils.iface.messageBar().pushMessage(
                "No layers selected", "No layers were selected.",
                QgsMessageBar.WARNING)
            layerFactorCheck = False
        else:
            listMapItems = QgsMapLayerRegistry.instance().mapLayers()
            for nameCode, layer in listMapItems.iteritems():
                layerName = layer.name()
                if layerName in selectedLayerNameList:
                    layerList.append(layer)
            for aLayer in layerList:
                provider = aLayer.dataProvider()
                aLayerName = aLayer.name()
                idFieldOrder = provider.fieldNameIndex(idFieldName)
                if idFieldOrder == -1:
                    self.close()
                    qgis.utils.iface.messageBar().pushMessage(
                        "Layer format error with " + aLayerName,
                        "The specified ID field " + idFieldName +
                        " is not in the layer " + aLayerName + ".",
                        QgsMessageBar.WARNING)
                    layerFactorCheck = False
                else:
                    idField = provider.fields().field(idFieldOrder)
                    idFieldType = idField.typeName()
                    if idFieldType != "Integer" and idFieldType != "Integer64":
                        self.close()
                        qgis.utils.iface.messageBar().pushMessage(
                            "Layer format error" + aLayerName,
                            "The specified ID field " + idFieldName +
                            " does not contain integer values.",
                            QgsMessageBar.WARNING)
                        layerFactorCheck = False

        if layerFactorCheck:
            convFactor = 1
            if self.userRadioButton.isChecked():
                try:
                    convFactor = float(self.convLineEdit.text())
                    if convFactor <= 0:
                        self.close()
                        qgis.utils.iface.messageBar().pushMessage(
                            "Incorrect conversion value",
                            "The conversion value must be a number greater than 0.",
                            QgsMessageBar.WARNING)
                        convFactorCheck = False

                except:
                    self.close()
                    qgis.utils.iface.messageBar().pushMessage(
                        "Incorrect conversion value",
                        "The conversion value must be a number greater than 0.",
                        QgsMessageBar.WARNING)
                    convFactorCheck = False

        if layerFactorCheck and convFactorCheck:
            addAbundDict, addFeatIDList = cluz_functions1.makeVecAddAbundDict(
                setupObject, layerList, idFieldName, convFactor)
            existingIDSet = set(addFeatIDList).intersection(
                set(setupObject.targetDict.keys()))
            if len(existingIDSet) > 0:
                self.close()
                listText = ""
                for aID in existingIDSet:
                    listText += str(aID) + ", "
                    finalListText = listText[0:-2]
                qgis.utils.iface.messageBar().pushMessage(
                    "Existing features",
                    "The abundance table already contains features with ID values of "
                    + finalListText +
                    ". This process will terminate without adding the new values.",
                    QgsMessageBar.WARNING)
            else:
                if setupObject.abundPUKeyDict == "blank":
                    setupObject.abundPUKeyDict = cluz_setup.makeAbundancePUKeyDict(
                        setupObject)
                cluz_functions1.addFeaturesToPuvspr2File(
                    setupObject, addAbundDict)
                setupObject.abundPUKeyDict = cluz_setup.makeAbundancePUKeyDict(
                    setupObject)
                cluz_setup.makeSporderDatFile(setupObject)

                cluz_functions1.addFeaturesToTargetCsvFile(
                    setupObject, addAbundDict, addFeatIDList)
                setupObject.targetDict = cluz_setup.makeTargetDict(setupObject)

                self.close()