def initialize(): # Add the basic providers Processing.addProvider(QGISAlgorithmProvider()) Processing.addProvider(ModelerOnlyAlgorithmProvider()) Processing.addProvider(GdalOgrAlgorithmProvider()) Processing.addProvider(LidarToolsAlgorithmProvider()) Processing.addProvider(OTBAlgorithmProvider()) Processing.addProvider(RAlgorithmProvider()) Processing.addProvider(SagaAlgorithmProvider()) Processing.addProvider(GrassAlgorithmProvider()) Processing.addProvider(Grass7AlgorithmProvider()) Processing.addProvider(ScriptAlgorithmProvider()) Processing.addProvider(TauDEMAlgorithmProvider()) Processing.addProvider(Processing.modeler) Processing.modeler.initializeSettings() # And initialize AlgorithmDecorator.loadClassification() ProcessingLog.startLogging() ProcessingConfig.initialize() ProcessingConfig.readSettings() RenderingStyles.loadStyles() Processing.loadFromProviders() # Inform registered listeners that all providers' algorithms have been loaded Processing.fireAlgsListHasChanged()
def testUniqueValues(self): ProcessingConfig.initialize() test_data = points() test_layer = QgsVectorLayer(test_data, 'test', 'ogr') # field by index v = vector.uniqueValues(test_layer, 2) self.assertEqual(len(v), len(set(v))) self.assertEqual(set(v), set([2, 1, 0])) # field by name v = vector.uniqueValues(test_layer, 'id2') self.assertEqual(len(v), len(set(v))) self.assertEqual(set(v), set([2, 1, 0])) # test with selected features previous_value = ProcessingConfig.getSetting(ProcessingConfig.USE_SELECTED) ProcessingConfig.setSettingValue(ProcessingConfig.USE_SELECTED, True) test_layer.selectByIds([2, 4, 6]) v = vector.uniqueValues(test_layer, 'id') self.assertEqual(len(v), len(set(v))) self.assertEqual(set(v), set([5, 7, 3])) ProcessingConfig.setSettingValue(ProcessingConfig.USE_SELECTED, previous_value)
def testUniqueValues(self): ProcessingConfig.initialize() # disable check for geometry validity prevInvalidGeoms = ProcessingConfig.getSetting(ProcessingConfig.FILTER_INVALID_GEOMETRIES) ProcessingConfig.setSettingValue(ProcessingConfig.FILTER_INVALID_GEOMETRIES, 0) test_data = points() test_layer = QgsVectorLayer(test_data, 'test', 'ogr') # field by index v = vector.uniqueValues(test_layer, 2) self.assertEqual(len(v), len(set(v))) self.assertEqual(set(v), set([2, 1, 0])) # field by name v = vector.uniqueValues(test_layer, 'id2') self.assertEqual(len(v), len(set(v))) self.assertEqual(set(v), set([2, 1, 0])) # test with selected features previous_value = ProcessingConfig.getSetting(ProcessingConfig.USE_SELECTED) ProcessingConfig.setSettingValue(ProcessingConfig.USE_SELECTED, True) test_layer.selectByIds([2, 4, 6]) v = vector.uniqueValues(test_layer, 'id') self.assertEqual(len(v), len(set(v))) self.assertEqual(set(v), set([5, 7, 3])) ProcessingConfig.setSettingValue(ProcessingConfig.USE_SELECTED, previous_value) ProcessingConfig.setSettingValue(ProcessingConfig.FILTER_INVALID_GEOMETRIES, prevInvalidGeoms)
def testFeatures(self): ProcessingConfig.initialize() test_data = points() test_layer = QgsVectorLayer(test_data, 'test', 'ogr') # disable check for geometry validity prevInvalidGeoms = ProcessingConfig.getSetting(ProcessingConfig.FILTER_INVALID_GEOMETRIES) ProcessingConfig.setSettingValue(ProcessingConfig.FILTER_INVALID_GEOMETRIES, 0) # test with all features features = vector.features(test_layer) self.assertEqual(len(features), 9) self.assertEqual(set([f.id() for f in features]), set([0, 1, 2, 3, 4, 5, 6, 7, 8])) # test with selected features previous_value = ProcessingConfig.getSetting(ProcessingConfig.USE_SELECTED) ProcessingConfig.setSettingValue(ProcessingConfig.USE_SELECTED, True) test_layer.selectByIds([2, 4, 6]) features = vector.features(test_layer) self.assertEqual(len(features), 3) self.assertEqual(set([f.id() for f in features]), set([2, 4, 6])) # selection, but not using selected features ProcessingConfig.setSettingValue(ProcessingConfig.USE_SELECTED, False) test_layer.selectByIds([2, 4, 6]) features = vector.features(test_layer) self.assertEqual(len(features), 9) self.assertEqual(set([f.id() for f in features]), set([0, 1, 2, 3, 4, 5, 6, 7, 8])) # using selected features, but no selection ProcessingConfig.setSettingValue(ProcessingConfig.USE_SELECTED, True) test_layer.removeSelection() features = vector.features(test_layer) self.assertEqual(len(features), 9) self.assertEqual(set([f.id() for f in features]), set([0, 1, 2, 3, 4, 5, 6, 7, 8])) # test that feature request is honored ProcessingConfig.setSettingValue(ProcessingConfig.USE_SELECTED, False) features = vector.features(test_layer, QgsFeatureRequest().setFilterFids([1, 3, 5])) self.assertEqual(set([f.id() for f in features]), set([1, 3, 5])) # test that feature request is honored when using selections ProcessingConfig.setSettingValue(ProcessingConfig.USE_SELECTED, True) test_layer.selectByIds([2, 4, 6]) features = vector.features(test_layer, QgsFeatureRequest().setFlags(QgsFeatureRequest.NoGeometry)) self.assertTrue(all([not f.hasGeometry() for f in features])) features = vector.features(test_layer, QgsFeatureRequest().setFlags(QgsFeatureRequest.NoGeometry)) self.assertEqual(set([f.id() for f in features]), set([2, 4, 6])) ProcessingConfig.setSettingValue(ProcessingConfig.USE_SELECTED, previous_value) # test exception is raised when filtering invalid geoms #ProcessingConfig.setSettingValue(ProcessingConfig.FILTER_INVALID_GEOMETRIES, 2) #test_layer_invalid_geoms = QgsVectorLayer(invalid_geometries(), 'test', 'ogr') #with self.assertRaises(GeoAlgorithmExecutionException): # features = vector.features(test_layer_invalid_geoms) # feats = [f for f in features] ProcessingConfig.setSettingValue(ProcessingConfig.FILTER_INVALID_GEOMETRIES, prevInvalidGeoms)
def initialize(): if "model" in [p.getName() for p in Processing.providers]: return # Add the basic providers for c in AlgorithmProvider.__subclasses__(): Processing.addProvider(c()) # And initialize ProcessingConfig.initialize() ProcessingConfig.readSettings() RenderingStyles.loadStyles()
def initialize(): if "model" in [p.id() for p in QgsApplication.processingRegistry().providers()]: return # Add the basic providers for c in QgsProcessingProvider.__subclasses__(): p = c() Processing.BASIC_PROVIDERS.append(p) QgsApplication.processingRegistry().addProvider(p) # And initialize ProcessingConfig.initialize() ProcessingConfig.readSettings() RenderingStyles.loadStyles()
def initialize(): if "model" in [p.id() for p in QgsApplication.processingRegistry().providers()]: return # Add the basic providers for c in QgsProcessingProvider.__subclasses__(): p = c() if p.id() in ('native', '3d'): # c++ providers are already registered continue if QgsApplication.processingRegistry().addProvider(p): Processing.BASIC_PROVIDERS.append(p) # And initialize ProcessingConfig.initialize() ProcessingConfig.readSettings() RenderingStyles.loadStyles()
def testFeatures(self): ProcessingConfig.initialize() test_data = points() test_layer = QgsVectorLayer(test_data, 'test', 'ogr') # test with all features features = vector.features(test_layer) self.assertEqual(len(features), 9) self.assertEqual(set([f.id() for f in features]), set([0, 1, 2, 3, 4, 5, 6, 7, 8])) # test with selected features previous_value = ProcessingConfig.getSetting(ProcessingConfig.USE_SELECTED) ProcessingConfig.setSettingValue(ProcessingConfig.USE_SELECTED, True) test_layer.selectByIds([2, 4, 6]) features = vector.features(test_layer) self.assertEqual(len(features), 3) self.assertEqual(set([f.id() for f in features]), set([2, 4, 6])) # selection, but not using selected features ProcessingConfig.setSettingValue(ProcessingConfig.USE_SELECTED, False) test_layer.selectByIds([2, 4, 6]) features = vector.features(test_layer) self.assertEqual(len(features), 9) self.assertEqual(set([f.id() for f in features]), set([0, 1, 2, 3, 4, 5, 6, 7, 8])) # using selected features, but no selection ProcessingConfig.setSettingValue(ProcessingConfig.USE_SELECTED, True) test_layer.removeSelection() features = vector.features(test_layer) self.assertEqual(len(features), 9) self.assertEqual(set([f.id() for f in features]), set([0, 1, 2, 3, 4, 5, 6, 7, 8])) # test that feature request is honored ProcessingConfig.setSettingValue(ProcessingConfig.USE_SELECTED, False) features = vector.features(test_layer, QgsFeatureRequest().setFilterFids([1, 3, 5])) self.assertEqual(set([f.id() for f in features]), set([1, 3, 5])) # test that feature request is honored when using selections ProcessingConfig.setSettingValue(ProcessingConfig.USE_SELECTED, True) test_layer.selectByIds([2, 4, 6]) features = vector.features(test_layer, QgsFeatureRequest().setFlags(QgsFeatureRequest.NoGeometry)) self.assertTrue(all([not f.hasGeometry() for f in features])) features = vector.features(test_layer, QgsFeatureRequest().setFlags(QgsFeatureRequest.NoGeometry)) self.assertEqual(set([f.id() for f in features]), set([2, 4, 6])) ProcessingConfig.setSettingValue(ProcessingConfig.USE_SELECTED, previous_value)
def testValues(self): ProcessingConfig.initialize() # disable check for geometry validity prevInvalidGeoms = ProcessingConfig.getSetting( ProcessingConfig.FILTER_INVALID_GEOMETRIES) ProcessingConfig.setSettingValue( ProcessingConfig.FILTER_INVALID_GEOMETRIES, 0) test_data = points() test_layer = QgsVectorLayer(test_data, 'test', 'ogr') # field by index res = vector.values(test_layer, 1) self.assertEqual(res[1], [1, 2, 3, 4, 5, 6, 7, 8, 9]) # field by name res = vector.values(test_layer, 'id') self.assertEqual(res['id'], [1, 2, 3, 4, 5, 6, 7, 8, 9]) # two fields res = vector.values(test_layer, 1, 2) self.assertEqual(res[1], [1, 2, 3, 4, 5, 6, 7, 8, 9]) self.assertEqual(res[2], [2, 1, 0, 2, 1, 0, 0, 0, 0]) # two fields by name res = vector.values(test_layer, 'id', 'id2') self.assertEqual(res['id'], [1, 2, 3, 4, 5, 6, 7, 8, 9]) self.assertEqual(res['id2'], [2, 1, 0, 2, 1, 0, 0, 0, 0]) # two fields by name and index res = vector.values(test_layer, 'id', 2) self.assertEqual(res['id'], [1, 2, 3, 4, 5, 6, 7, 8, 9]) self.assertEqual(res[2], [2, 1, 0, 2, 1, 0, 0, 0, 0]) # test with selected features previous_value = ProcessingConfig.getSetting( ProcessingConfig.USE_SELECTED) ProcessingConfig.setSettingValue(ProcessingConfig.USE_SELECTED, True) test_layer.selectByIds([2, 4, 6]) res = vector.values(test_layer, 1) self.assertEqual(set(res[1]), set([5, 7, 3])) ProcessingConfig.setSettingValue(ProcessingConfig.USE_SELECTED, previous_value) ProcessingConfig.setSettingValue( ProcessingConfig.FILTER_INVALID_GEOMETRIES, prevInvalidGeoms)
def initialize(): if "model" in [p.id() for p in QgsApplication.processingRegistry().providers()]: return # Add the basic providers for c in [ QgisAlgorithmProvider, Grass7AlgorithmProvider, GdalAlgorithmProvider, SagaAlgorithmProvider, ScriptAlgorithmProvider, ModelerAlgorithmProvider ]: p = c() if QgsApplication.processingRegistry().addProvider(p): Processing.BASIC_PROVIDERS.append(p) # And initialize ProcessingConfig.initialize() ProcessingConfig.readSettings() RenderingStyles.loadStyles()
def initialize(): #add the basic providers Processing.addProvider(QGISAlgorithmProvider()) Processing.addProvider(ModelerOnlyAlgorithmProvider()) Processing.addProvider(GdalOgrAlgorithmProvider()) Processing.addProvider(LidarToolsAlgorithmProvider()) Processing.addProvider(OTBAlgorithmProvider()) Processing.addProvider(RAlgorithmProvider()) Processing.addProvider(SagaAlgorithmProvider()) Processing.addProvider(GrassAlgorithmProvider()) Processing.addProvider(ScriptAlgorithmProvider()) Processing.addProvider(TauDEMAlgorithmProvider()) Processing.addProvider(AdminToolsAlgorithmProvider()) Processing.modeler.initializeSettings(); #and initialize AlgorithmDecorator.loadClassification() ProcessingLog.startLogging() ProcessingConfig.initialize() ProcessingConfig.loadSettings() RenderingStyles.loadStyles() Processing.loadFromProviders()
def initialize(): # Add the basic providers Processing.addProvider(QGISAlgorithmProvider(), updateList=False) Processing.addProvider(ModelerOnlyAlgorithmProvider(), updateList=False) Processing.addProvider(GdalOgrAlgorithmProvider(), updateList=False) Processing.addProvider(LidarToolsAlgorithmProvider(), updateList=False) Processing.addProvider(OTBAlgorithmProvider(), updateList=False) Processing.addProvider(RAlgorithmProvider(), updateList=False) Processing.addProvider(SagaAlgorithmProvider(), updateList=False) Processing.addProvider(GrassAlgorithmProvider(), updateList=False) Processing.addProvider(Grass7AlgorithmProvider(), updateList=False) Processing.addProvider(ScriptAlgorithmProvider(), updateList=False) Processing.addProvider(TauDEMAlgorithmProvider(), updateList=False) Processing.addProvider(PreconfiguredAlgorithmProvider(), updateList=False) Processing.addProvider(Processing.modeler, updateList=False) Processing.modeler.initializeSettings() # And initialize AlgorithmClassification.loadClassification() ProcessingConfig.initialize() ProcessingConfig.readSettings() RenderingStyles.loadStyles() Processing.loadFromProviders()
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 initialize(): # Add the basic providers Processing.addProvider(QGISAlgorithmProvider()) Processing.addProvider(ModelerOnlyAlgorithmProvider()) Processing.addProvider(GdalOgrAlgorithmProvider()) Processing.addProvider(LidarToolsAlgorithmProvider()) Processing.addProvider(OTBAlgorithmProvider()) Processing.addProvider(RAlgorithmProvider()) Processing.addProvider(SagaAlgorithmProvider()) Processing.addProvider(GrassAlgorithmProvider()) Processing.addProvider(Grass7AlgorithmProvider()) Processing.addProvider(ScriptAlgorithmProvider()) Processing.addProvider(TauDEMAlgorithmProvider()) Processing.addProvider(Processing.modeler) Processing.modeler.initializeSettings() # And initialize AlgorithmDecorator.loadClassification() ProcessingLog.startLogging() ProcessingConfig.initialize() ProcessingConfig.readSettings() RenderingStyles.loadStyles() Processing.loadFromProviders()
def testValues(self): ProcessingConfig.initialize() test_data = points2() test_layer = QgsVectorLayer(test_data, 'test', 'ogr') # field by index res = vector.values(test_layer, 0) self.assertEqual(res[0], [1, 2, 3, 4, 5, 6, 7, 8]) # field by name res = vector.values(test_layer, 'id') self.assertEqual(res['id'], [1, 2, 3, 4, 5, 6, 7, 8]) # two fields res = vector.values(test_layer, 0, 3) self.assertEqual(res[0], [1, 2, 3, 4, 5, 6, 7, 8]) self.assertEqual(res[3], [2, 1, 0, 2, 1, 0, 0, 0]) # two fields by name res = vector.values(test_layer, 'id', 'id_2') self.assertEqual(res['id'], [1, 2, 3, 4, 5, 6, 7, 8]) self.assertEqual(res['id_2'], [2, 1, 0, 2, 1, 0, 0, 0]) # two fields by name and index res = vector.values(test_layer, 'id', 3) self.assertEqual(res['id'], [1, 2, 3, 4, 5, 6, 7, 8]) self.assertEqual(res[3], [2, 1, 0, 2, 1, 0, 0, 0]) # test with selected features previous_value = ProcessingConfig.getSetting(ProcessingConfig.USE_SELECTED) ProcessingConfig.setSettingValue(ProcessingConfig.USE_SELECTED, True) test_layer.selectByIds([2, 4, 6]) res = vector.values(test_layer, 0) self.assertEqual(set(res[0]), set([5, 7, 3])) ProcessingConfig.setSettingValue(ProcessingConfig.USE_SELECTED, previous_value)
def initialize(): # Add the basic providers Processing.addProvider(QGISAlgorithmProvider(), updateList=False) Processing.addProvider(ModelerOnlyAlgorithmProvider(), updateList=False) Processing.addProvider(GdalOgrAlgorithmProvider(), updateList=False) Processing.addProvider(LidarToolsAlgorithmProvider(), updateList=False) Processing.addProvider(OTBAlgorithmProvider(), updateList=False) Processing.addProvider(RAlgorithmProvider(), updateList=False) Processing.addProvider(SagaAlgorithmProvider(), updateList=False) Processing.addProvider(GrassAlgorithmProvider(), updateList=False) Processing.addProvider(Grass7AlgorithmProvider(), updateList=False) Processing.addProvider(ScriptAlgorithmProvider(), updateList=False) Processing.addProvider(TauDEMAlgorithmProvider(), updateList=False) Processing.addProvider(Processing.modeler, updateList=False) Processing.modeler.initializeSettings() # And initialize AlgorithmClassification.loadClassification() ProcessingConfig.initialize() ProcessingConfig.readSettings() RenderingStyles.loadStyles() Processing.loadFromProviders() # Inform registered listeners that all providers' algorithms have been loaded Processing.fireAlgsListHasChanged()
def testFeatures(self): ProcessingConfig.initialize() test_data = points() test_layer = QgsVectorLayer(test_data, 'test', 'ogr') # disable check for geometry validity prevInvalidGeoms = ProcessingConfig.getSetting( ProcessingConfig.FILTER_INVALID_GEOMETRIES) ProcessingConfig.setSettingValue( ProcessingConfig.FILTER_INVALID_GEOMETRIES, 0) # test with all features features = vector.features(test_layer) self.assertEqual(len(features), 9) self.assertEqual(set([f.id() for f in features]), set([0, 1, 2, 3, 4, 5, 6, 7, 8])) # test with selected features previous_value = ProcessingConfig.getSetting( ProcessingConfig.USE_SELECTED) ProcessingConfig.setSettingValue(ProcessingConfig.USE_SELECTED, True) test_layer.selectByIds([2, 4, 6]) features = vector.features(test_layer) self.assertEqual(len(features), 3) self.assertEqual(set([f.id() for f in features]), set([2, 4, 6])) # selection, but not using selected features ProcessingConfig.setSettingValue(ProcessingConfig.USE_SELECTED, False) test_layer.selectByIds([2, 4, 6]) features = vector.features(test_layer) self.assertEqual(len(features), 9) self.assertEqual(set([f.id() for f in features]), set([0, 1, 2, 3, 4, 5, 6, 7, 8])) # using selected features, but no selection ProcessingConfig.setSettingValue(ProcessingConfig.USE_SELECTED, True) test_layer.removeSelection() features = vector.features(test_layer) self.assertEqual(len(features), 9) self.assertEqual(set([f.id() for f in features]), set([0, 1, 2, 3, 4, 5, 6, 7, 8])) # test that feature request is honored ProcessingConfig.setSettingValue(ProcessingConfig.USE_SELECTED, False) features = vector.features( test_layer, QgsFeatureRequest().setFilterFids([1, 3, 5])) self.assertEqual(set([f.id() for f in features]), set([1, 3, 5])) # test that feature request is honored when using selections ProcessingConfig.setSettingValue(ProcessingConfig.USE_SELECTED, True) test_layer.selectByIds([2, 4, 6]) features = vector.features( test_layer, QgsFeatureRequest().setFlags(QgsFeatureRequest.NoGeometry)) self.assertTrue(all([not f.hasGeometry() for f in features])) features = vector.features( test_layer, QgsFeatureRequest().setFlags(QgsFeatureRequest.NoGeometry)) self.assertEqual(set([f.id() for f in features]), set([2, 4, 6])) ProcessingConfig.setSettingValue(ProcessingConfig.USE_SELECTED, previous_value) # test exception is raised when filtering invalid geoms #ProcessingConfig.setSettingValue(ProcessingConfig.FILTER_INVALID_GEOMETRIES, 2) #test_layer_invalid_geoms = QgsVectorLayer(invalid_geometries(), 'test', 'ogr') #with self.assertRaises(GeoAlgorithmExecutionException): # features = vector.features(test_layer_invalid_geoms) # feats = [f for f in features] ProcessingConfig.setSettingValue( ProcessingConfig.FILTER_INVALID_GEOMETRIES, prevInvalidGeoms)
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()