def load(self): with QgsRuntimeProfiler.profile('Grass Provider'): ProcessingConfig.settingIcons[self.name()] = self.icon() ProcessingConfig.addSetting( Setting(self.name(), Grass7Utils.GRASS_LOG_COMMANDS, self.tr('Log execution commands'), False)) ProcessingConfig.addSetting( Setting(self.name(), Grass7Utils.GRASS_LOG_CONSOLE, self.tr('Log console output'), False)) ProcessingConfig.addSetting( Setting(self.name(), Grass7Utils.GRASS_HELP_PATH, self.tr('Location of GRASS docs'), Grass7Utils.grassHelpPath())) # Add settings for using r.external/v.external instead of r.in.gdal/v.in.ogr # but set them to False by default because the {r,v}.external implementations # have some bugs on windows + there are algorithms that can't be used with # external data (need a solid r.in.gdal/v.in.ogr). # For more info have a look at e.g. https://trac.osgeo.org/grass/ticket/3927 ProcessingConfig.addSetting( Setting( self.name(), Grass7Utils.GRASS_USE_REXTERNAL, self. tr('For raster layers, use r.external (faster) instead of r.in.gdal' ), False)) ProcessingConfig.addSetting( Setting( self.name(), Grass7Utils.GRASS_USE_VEXTERNAL, self. tr('For vector layers, use v.external (faster) instead of v.in.ogr' ), False)) ProcessingConfig.readSettings() self.refreshAlgorithms() return True
def initialize(): if "model" in [p.id() for p in QgsApplication.processingRegistry().providers()]: return with QgsRuntimeProfiler.profile('Initialize'): # add native provider if not already added if "native" not in [p.id() for p in QgsApplication.processingRegistry().providers()]: QgsApplication.processingRegistry().addProvider(QgsNativeAlgorithms(QgsApplication.processingRegistry())) # add 3d provider if available and not already added if "3d" not in [p.id() for p in QgsApplication.processingRegistry().providers()]: try: from qgis._3d import Qgs3DAlgorithms QgsApplication.processingRegistry().addProvider(Qgs3DAlgorithms(QgsApplication.processingRegistry())) except ImportError: # no 3d library available pass # Add the basic providers for c in [ QgisAlgorithmProvider, GdalAlgorithmProvider, ScriptAlgorithmProvider, ModelerAlgorithmProvider, ProjectProvider ]: p = c() if QgsApplication.processingRegistry().addProvider(p): Processing.BASIC_PROVIDERS.append(p) # And initialize ProcessingConfig.initialize() ProcessingConfig.readSettings() RenderingStyles.loadStyles()
def load(self): with QgsRuntimeProfiler.profile('GDAL Provider'): ProcessingConfig.settingIcons[self.name()] = self.icon() ProcessingConfig.addSetting( Setting(self.name(), 'ACTIVATE_GDAL', self.tr('Activate'), True)) ProcessingConfig.readSettings() self.refreshAlgorithms() return True
def load(self): with QgsRuntimeProfiler.profile('QGIS Python Provider'): success = super().load() if success: self.parameterTypeFieldsMapping = FieldsMapper.ParameterFieldsMappingType( ) QgsApplication.instance().processingRegistry( ).addParameterType(self.parameterTypeFieldsMapping) return success
def loadAlgorithms(self): with QgsRuntimeProfiler.profile('Load model algorithms'): if self.isLoading: return self.isLoading = True self.algs = [] folders = ModelerUtils.modelsFolders() for f in folders: self.loadFromFolder(f) for a in self.algs: self.addAlgorithm(a) self.isLoading = False
def load(self): with QgsRuntimeProfiler.profile('Script Provider'): ProcessingConfig.settingIcons[self.name()] = self.icon() ProcessingConfig.addSetting(Setting(self.name(), ScriptUtils.SCRIPTS_FOLDERS, self.tr("Scripts folder(s)"), ScriptUtils.defaultScriptsFolder(), valuetype=Setting.MULTIPLE_FOLDERS)) ProviderActions.registerProviderActions(self, self.actions) ProviderContextMenuActions.registerProviderContextMenuActions(self.contextMenuActions) ProcessingConfig.readSettings() self.refreshAlgorithms() return True
def load(self): with QgsRuntimeProfiler.profile('Model Provider'): ProcessingConfig.settingIcons[self.name()] = self.icon() ProcessingConfig.addSetting( Setting(self.name(), ModelerUtils.MODELS_FOLDER, self.tr('Models folder', 'ModelerAlgorithmProvider'), ModelerUtils.defaultModelsFolder(), valuetype=Setting.MULTIPLE_FOLDERS)) ProviderActions.registerProviderActions(self, self.actions) ProviderContextMenuActions.registerProviderContextMenuActions( self.contextMenuActions) ProcessingConfig.readSettings() self.refreshAlgorithms() return True
def load(self): with QgsRuntimeProfiler.profile('OTB Provider'): group = self.name() ProcessingConfig.settingIcons[group] = self.icon() ProcessingConfig.addSetting( Setting(group, OtbUtils.FOLDER, self.tr("OTB folder"), OtbUtils.otbFolder(), valuetype=Setting.FOLDER, validator=self.validateOtbFolder)) ProcessingConfig.addSetting( Setting(group, OtbUtils.APP_FOLDER, self.tr("OTB application folder"), OtbUtils.appFolder(), valuetype=Setting.MULTIPLE_FOLDERS, validator=self.validateAppFolders)) ProcessingConfig.addSetting( Setting(group, OtbUtils.SRTM_FOLDER, self.tr("SRTM tiles folder"), OtbUtils.srtmFolder(), valuetype=Setting.FOLDER)) ProcessingConfig.addSetting( Setting(group, OtbUtils.GEOID_FILE, self.tr("Geoid file"), OtbUtils.geoidFile(), valuetype=Setting.FOLDER)) ProcessingConfig.addSetting( Setting(group, OtbUtils.MAX_RAM_HINT, self.tr("Maximum RAM to use"), OtbUtils.maxRAMHint(), valuetype=Setting.STRING)) ProcessingConfig.addSetting( Setting(group, OtbUtils.LOGGER_LEVEL, self.tr("Logger level"), OtbUtils.loggerLevel(), valuetype=Setting.STRING, validator=self.validateLoggerLevel)) ProcessingConfig.readSettings() self.refreshAlgorithms() return True
def load(self): with QgsRuntimeProfiler.profile('SAGA Provider'): ProcessingConfig.settingIcons[self.name()] = self.icon() ProcessingConfig.addSetting( Setting("SAGA", SagaUtils.SAGA_IMPORT_EXPORT_OPTIMIZATION, self.tr('Enable SAGA Import/Export optimizations'), False)) ProcessingConfig.addSetting( Setting("SAGA", SagaUtils.SAGA_LOG_COMMANDS, self.tr('Log execution commands'), True)) ProcessingConfig.addSetting( Setting("SAGA", SagaUtils.SAGA_LOG_CONSOLE, self.tr('Log console output'), True)) ProcessingConfig.readSettings() self.refreshAlgorithms() return True
def initialize(): if "model" in [ p.id() for p in QgsApplication.processingRegistry().providers() ]: return with QgsRuntimeProfiler.profile('Initialize'): # Add the basic providers for c in [ QgisAlgorithmProvider, Grass7AlgorithmProvider, GdalAlgorithmProvider, OtbAlgorithmProvider, SagaAlgorithmProvider, ScriptAlgorithmProvider, ModelerAlgorithmProvider, ProjectProvider ]: p = c() if QgsApplication.processingRegistry().addProvider(p): Processing.BASIC_PROVIDERS.append(p) # And initialize ProcessingConfig.initialize() ProcessingConfig.readSettings() RenderingStyles.loadStyles()
def load(self): with QgsRuntimeProfiler.profile('QGIS Python Provider'): success = super().load() return success
* * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * *************************************************************************** """ __author__ = 'Alexander Bruy' __date__ = 'June 2021' __copyright__ = '(C) 2021, Alexander Bruy' from qgis.core import QgsApplication, QgsRuntimeProfiler with QgsRuntimeProfiler.profile('Import GRASS Provider'): from grassprovider.Grass7AlgorithmProvider import Grass7AlgorithmProvider class GrassProviderPlugin: def __init__(self): self.provider = Grass7AlgorithmProvider() def initProcessing(self): QgsApplication.processingRegistry().addProvider(self.provider) def initGui(self): self.initProcessing() def unload(self): QgsApplication.processingRegistry().removeProvider(self.provider)
def initialize(): if "model" in [p.id() for p in QgsApplication.processingRegistry().providers()]: return with QgsRuntimeProfiler.profile('Initialize'): # add native provider if not already added if "native" not in [p.id() for p in QgsApplication.processingRegistry().providers()]: QgsApplication.processingRegistry().addProvider(QgsNativeAlgorithms(QgsApplication.processingRegistry())) # add 3d provider if available and not already added if "3d" not in [p.id() for p in QgsApplication.processingRegistry().providers()]: try: from qgis._3d import Qgs3DAlgorithms QgsApplication.processingRegistry().addProvider(Qgs3DAlgorithms(QgsApplication.processingRegistry())) except ImportError: # no 3d library available pass # Add the basic providers for c in [ QgisAlgorithmProvider, GdalAlgorithmProvider, ScriptAlgorithmProvider, ModelerAlgorithmProvider, ProjectProvider ]: p = c() if QgsApplication.processingRegistry().addProvider(p): Processing.BASIC_PROVIDERS.append(p) if QgsApplication.platform() == 'external': # for external applications we must also load the builtin providers stored in separate plugins try: from grassprovider.Grass7AlgorithmProvider import Grass7AlgorithmProvider p = Grass7AlgorithmProvider() if QgsApplication.processingRegistry().addProvider(p): Processing.BASIC_PROVIDERS.append(p) except ImportError: pass try: from otbprovider.OtbAlgorithmProvider import OtbAlgorithmProvider p = OtbAlgorithmProvider() if QgsApplication.processingRegistry().addProvider(p): Processing.BASIC_PROVIDERS.append(p) except ImportError: pass try: from sagaprovider.SagaAlgorithmProvider import SagaAlgorithmProvider p = SagaAlgorithmProvider() if QgsApplication.processingRegistry().addProvider(p): Processing.BASIC_PROVIDERS.append(p) except ImportError: pass # And initialize ProcessingConfig.initialize() ProcessingConfig.readSettings() RenderingStyles.loadStyles()
def load(self): with QgsRuntimeProfiler.profile('Project Provider'): self.refreshAlgorithms() return True
* * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * *************************************************************************** """ __author__ = 'Alexander Bruy' __date__ = 'May 2021' __copyright__ = '(C) 2021, Alexander Bruy' from qgis.core import QgsApplication, QgsRuntimeProfiler with QgsRuntimeProfiler.profile('Import SAGA Provider'): from sagaprovider.SagaAlgorithmProvider import SagaAlgorithmProvider class SagaProviderPlugin: def __init__(self): self.provider = SagaAlgorithmProvider() def initProcessing(self): QgsApplication.processingRegistry().addProvider(self.provider) def initGui(self): self.initProcessing() def unload(self): QgsApplication.processingRegistry().removeProvider(self.provider)
QgsProcessingParameterDefinition, QgsProcessingOutputVectorLayer, QgsProcessingOutputRasterLayer, QgsProcessingOutputPointCloudLayer, QgsProcessingOutputMapLayer, QgsProcessingOutputMultipleLayers, QgsProcessingFeedback, QgsRuntimeProfiler) from qgis.analysis import QgsNativeAlgorithms import processing from processing.core.ProcessingConfig import ProcessingConfig from processing.gui.MessageBarProgress import MessageBarProgress from processing.gui.RenderingStyles import RenderingStyles from processing.gui.Postprocessing import handleAlgorithmResults from processing.gui.AlgorithmExecutor import execute from processing.script import ScriptUtils from processing.tools import dataobjects with QgsRuntimeProfiler.profile('Import QGIS Provider'): from processing.algs.qgis.QgisAlgorithmProvider import QgisAlgorithmProvider # NOQA with QgsRuntimeProfiler.profile('Import GDAL Provider'): from processing.algs.gdal.GdalAlgorithmProvider import GdalAlgorithmProvider # NOQA with QgsRuntimeProfiler.profile('Import Script Provider'): from processing.script.ScriptAlgorithmProvider import ScriptAlgorithmProvider # NOQA # should be loaded last - ensures that all dependent algorithms are available when loading models from processing.modeler.ModelerAlgorithmProvider import ModelerAlgorithmProvider # NOQA from processing.modeler.ProjectProvider import ProjectProvider # NOQA class Processing(object): BASIC_PROVIDERS = []
* This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * *************************************************************************** """ __author__ = 'Alexander Bruy' __date__ = 'June 2021' __copyright__ = '(C) 2021, Alexander Bruy' from qgis.core import QgsApplication, QgsRuntimeProfiler with QgsRuntimeProfiler.profile('Import OTB Provider'): from otbprovider.OtbAlgorithmProvider import OtbAlgorithmProvider class OtbProviderPlugin: def __init__(self): self.provider = OtbAlgorithmProvider() def initProcessing(self): QgsApplication.processingRegistry().addProvider(self.provider) def initGui(self): self.initProcessing() def unload(self):