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.")
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)
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)
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)
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_()
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_()
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_()
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.")
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)
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()
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()