Пример #1
0
    def setCreateMarxanInputFiles(self, setupObject):
        messageStringList = []
        if self.targetBox.isChecked():
            cluz_functions2.createSpecDatFile(setupObject)
            messageStringList.append("spec.dat")

        if self.puBox.isChecked():
            cluz_functions2.createPuDatFile(setupObject)
            messageStringList.append("pu.dat")

        if self.boundBox.isChecked():
            if self.boundextBox.isChecked() and self.boundextBox.isEnabled():
                extEdgeBool = True
            else:
                extEdgeBool = False
            cluz_functions2.createBoundDatFile(setupObject, extEdgeBool)
            qgis.utils.iface.mainWindow().statusBar().showMessage("")
            messageStringList.append("bound.dat")

        if len(messageStringList) > 0:
            messageString = ""
            for aString in messageStringList:
                messageString += aString + ", "
            finalMessageString = messageString[:-2]

            qgis.utils.iface.messageBar().pushMessage("Marxan files:", "The following files have been produced: " + finalMessageString, QgsMessageBar.INFO, 3)

        self.close()
Пример #2
0
    def runMarxan(self, setupObject, targetsMetAction):
        numIterString = self.iterLineEdit.text()
        numRunString = self.runLineEdit.text()
        outputName = str(self.outputLineEdit.text())
        setupObject.outputName = outputName
        if self.boundCheckBox.isChecked():
            blmValueString = self.boundLineEdit.text()
        else:
            blmValueString = "0"
        missingPropString = self.missingLineEdit.text()
        initialPropString = self.propLineEdit.text()

        extraOutputsBool = self.extraCheckBox.isChecked()

        if self.parallelCheckBox.isChecked():
            numParallelAnalyses = int(self.parallelListWidget.selectedItems()[0].text())
        else:
            numParallelAnalyses = 1

        checkMarxanInputValuesBool = cluz_functions2.checkMarxanInputValuesBool(numIterString, numRunString, blmValueString, missingPropString, initialPropString, numParallelAnalyses)
        if checkMarxanInputValuesBool == True:
            numIter = int(numIterString)
            numRun = int(numRunString)
            blmValue = float(blmValueString)
            missingProp = float(missingPropString)
            initialProp = float(initialPropString)

            cluz_functions2.createSpecDatFile(setupObject)
            setupObject = cluz_functions2.marxanUpdateSetupObject(setupObject, outputName, numIter, numRun, blmValue, extraOutputsBool, missingProp, initialProp)
            cluz_setup.updateClzSetupFile(setupObject)
            self.close()

            if numParallelAnalyses == 1:
                bestOutputFile, summedOutputFile = launchSingleMarxanAnalysis(setupObject, numIter, numRun, blmValue, missingProp, initialProp, outputName, extraOutputsBool)
            else:
                bestOutputFile, summedOutputFile = launchMultiMarxanAnalysis(setupObject, numIter, numRun, blmValue, missingProp, initialProp, outputName, extraOutputsBool, numParallelAnalyses)

            cluz_functions2.addBestMarxanOutputToPUShapefile(setupObject, bestOutputFile, "Best")
            cluz_functions2.addSummedMarxanOutputToPUShapefile(setupObject, summedOutputFile, "SF_Score")

            cluz_display.reloadPULayer(setupObject)
            cluz_display.removePreviousMarxanLayers()
            bestLayerName = "Best (" + outputName + ")"
            summedLayerName = "SF_Score (" + outputName + ")"
            cluz_display.displayBestOutput(setupObject, "Best", bestLayerName)
            cluz_display.displayGraduatedLayer(setupObject, "SF_Score", summedLayerName, 1) #1 is SF legend code

            targetsMetAction.setEnabled(True)