mirror of
				https://github.com/qgis/QGIS.git
				synced 2025-11-04 00:04:25 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			334 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			334 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
# -*- coding: utf-8 -*-
 | 
						|
 | 
						|
"""
 | 
						|
***************************************************************************
 | 
						|
    QGISAlgorithmProvider.py
 | 
						|
    ---------------------
 | 
						|
    Date                 : December 2012
 | 
						|
    Copyright            : (C) 2012 by Victor Olaya
 | 
						|
    Email                : volayaf at gmail dot com
 | 
						|
***************************************************************************
 | 
						|
*                                                                         *
 | 
						|
*   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__ = 'Victor Olaya'
 | 
						|
__date__ = 'December 2012'
 | 
						|
__copyright__ = '(C) 2012, Victor Olaya'
 | 
						|
 | 
						|
# This will get replaced with a git SHA1 when you do a git archive
 | 
						|
 | 
						|
__revision__ = '$Format:%H$'
 | 
						|
 | 
						|
import os
 | 
						|
 | 
						|
try:
 | 
						|
    import plotly  # NOQA
 | 
						|
    hasPlotly = True
 | 
						|
except:
 | 
						|
    hasPlotly = False
 | 
						|
 | 
						|
from qgis.core import (QgsApplication,
 | 
						|
                       QgsProcessingProvider)
 | 
						|
 | 
						|
from processing.script.ScriptUtils import ScriptUtils
 | 
						|
 | 
						|
from .QgisAlgorithm import QgisAlgorithm
 | 
						|
 | 
						|
from .AddTableField import AddTableField
 | 
						|
from .Aggregate import Aggregate
 | 
						|
from .Aspect import Aspect
 | 
						|
from .BasicStatistics import BasicStatisticsForField
 | 
						|
from .CheckValidity import CheckValidity
 | 
						|
from .ConcaveHull import ConcaveHull
 | 
						|
from .CreateAttributeIndex import CreateAttributeIndex
 | 
						|
from .CreateConstantRaster import CreateConstantRaster
 | 
						|
from .Datasources2Vrt import Datasources2Vrt
 | 
						|
from .DefineProjection import DefineProjection
 | 
						|
from .Delaunay import Delaunay
 | 
						|
from .DeleteColumn import DeleteColumn
 | 
						|
from .DeleteDuplicateGeometries import DeleteDuplicateGeometries
 | 
						|
from .DeleteHoles import DeleteHoles
 | 
						|
from .DensifyGeometries import DensifyGeometries
 | 
						|
from .DensifyGeometriesInterval import DensifyGeometriesInterval
 | 
						|
from .Difference import Difference
 | 
						|
from .EliminateSelection import EliminateSelection
 | 
						|
from .EquivalentNumField import EquivalentNumField
 | 
						|
from .ExecuteSQL import ExecuteSQL
 | 
						|
from .Explode import Explode
 | 
						|
from .ExportGeometryInfo import ExportGeometryInfo
 | 
						|
from .ExtendLines import ExtendLines
 | 
						|
from .ExtentFromLayer import ExtentFromLayer
 | 
						|
from .ExtractNodes import ExtractNodes
 | 
						|
from .ExtractSpecificNodes import ExtractSpecificNodes
 | 
						|
from .FieldPyculator import FieldsPyculator
 | 
						|
from .FieldsCalculator import FieldsCalculator
 | 
						|
from .FieldsMapper import FieldsMapper
 | 
						|
from .FindProjection import FindProjection
 | 
						|
from .FixedDistanceBuffer import FixedDistanceBuffer
 | 
						|
from .GeometryConvert import GeometryConvert
 | 
						|
from .GeometryByExpression import GeometryByExpression
 | 
						|
from .Gridify import Gridify
 | 
						|
from .GridLine import GridLine
 | 
						|
from .GridPolygon import GridPolygon
 | 
						|
from .Heatmap import Heatmap
 | 
						|
from .Hillshade import Hillshade
 | 
						|
from .HubDistanceLines import HubDistanceLines
 | 
						|
from .HubDistancePoints import HubDistancePoints
 | 
						|
from .HypsometricCurves import HypsometricCurves
 | 
						|
from .IdwInterpolation import IdwInterpolation
 | 
						|
from .ImportIntoPostGIS import ImportIntoPostGIS
 | 
						|
from .ImportIntoSpatialite import ImportIntoSpatialite
 | 
						|
from .Intersection import Intersection
 | 
						|
from .LinesToPolygons import LinesToPolygons
 | 
						|
from .Merge import Merge
 | 
						|
from .MinimumBoundingGeometry import MinimumBoundingGeometry
 | 
						|
from .NearestNeighbourAnalysis import NearestNeighbourAnalysis
 | 
						|
from .OffsetLine import OffsetLine
 | 
						|
from .Orthogonalize import Orthogonalize
 | 
						|
from .PointDistance import PointDistance
 | 
						|
from .PointOnSurface import PointOnSurface
 | 
						|
from .PointsAlongGeometry import PointsAlongGeometry
 | 
						|
from .PointsDisplacement import PointsDisplacement
 | 
						|
from .PointsFromLines import PointsFromLines
 | 
						|
from .PointsFromPolygons import PointsFromPolygons
 | 
						|
from .PointsInPolygon import PointsInPolygon
 | 
						|
from .PointsLayerFromTable import PointsLayerFromTable
 | 
						|
from .PointsToPaths import PointsToPaths
 | 
						|
from .PoleOfInaccessibility import PoleOfInaccessibility
 | 
						|
from .Polygonize import Polygonize
 | 
						|
from .PolygonsToLines import PolygonsToLines
 | 
						|
from .PostGISExecuteSQL import PostGISExecuteSQL
 | 
						|
from .RandomExtract import RandomExtract
 | 
						|
from .RandomExtractWithinSubsets import RandomExtractWithinSubsets
 | 
						|
from .RandomPointsAlongLines import RandomPointsAlongLines
 | 
						|
from .RandomPointsExtent import RandomPointsExtent
 | 
						|
from .RandomPointsLayer import RandomPointsLayer
 | 
						|
from .RandomPointsPolygons import RandomPointsPolygons
 | 
						|
from .RandomSelection import RandomSelection
 | 
						|
from .RandomSelectionWithinSubsets import RandomSelectionWithinSubsets
 | 
						|
from .Rasterize import RasterizeAlgorithm
 | 
						|
from .RasterCalculator import RasterCalculator
 | 
						|
from .RasterLayerStatistics import RasterLayerStatistics
 | 
						|
from .RectanglesOvalsDiamondsFixed import RectanglesOvalsDiamondsFixed
 | 
						|
from .RectanglesOvalsDiamondsVariable import RectanglesOvalsDiamondsVariable
 | 
						|
from .RegularPoints import RegularPoints
 | 
						|
from .Relief import Relief
 | 
						|
from .ReverseLineDirection import ReverseLineDirection
 | 
						|
from .Ruggedness import Ruggedness
 | 
						|
from .SelectByAttribute import SelectByAttribute
 | 
						|
from .SelectByExpression import SelectByExpression
 | 
						|
from .ServiceAreaFromLayer import ServiceAreaFromLayer
 | 
						|
from .ServiceAreaFromPoint import ServiceAreaFromPoint
 | 
						|
from .SetMValue import SetMValue
 | 
						|
from .SetRasterStyle import SetRasterStyle
 | 
						|
from .SetVectorStyle import SetVectorStyle
 | 
						|
from .SetZValue import SetZValue
 | 
						|
from .ShortestPathLayerToPoint import ShortestPathLayerToPoint
 | 
						|
from .ShortestPathPointToLayer import ShortestPathPointToLayer
 | 
						|
from .ShortestPathPointToPoint import ShortestPathPointToPoint
 | 
						|
from .SingleSidedBuffer import SingleSidedBuffer
 | 
						|
from .Slope import Slope
 | 
						|
from .SnapGeometries import SnapGeometriesToLayer
 | 
						|
from .SpatialiteExecuteSQL import SpatialiteExecuteSQL
 | 
						|
from .SpatialIndex import SpatialIndex
 | 
						|
from .SpatialJoin import SpatialJoin
 | 
						|
from .SpatialJoinSummary import SpatialJoinSummary
 | 
						|
from .StatisticsByCategories import StatisticsByCategories
 | 
						|
from .SumLines import SumLines
 | 
						|
from .SymmetricalDifference import SymmetricalDifference
 | 
						|
from .TextToFloat import TextToFloat
 | 
						|
from .TinInterpolation import TinInterpolation
 | 
						|
from .TopoColors import TopoColor
 | 
						|
from .Translate import Translate
 | 
						|
from .TruncateTable import TruncateTable
 | 
						|
from .Union import Union
 | 
						|
from .UniqueValues import UniqueValues
 | 
						|
from .VariableDistanceBuffer import VariableDistanceBuffer
 | 
						|
from .VectorSplit import VectorSplit
 | 
						|
from .VoronoiPolygons import VoronoiPolygons
 | 
						|
from .ZonalStatistics import ZonalStatistics
 | 
						|
 | 
						|
 | 
						|
pluginPath = os.path.normpath(os.path.join(
 | 
						|
    os.path.split(os.path.dirname(__file__))[0], os.pardir))
 | 
						|
 | 
						|
 | 
						|
class QGISAlgorithmProvider(QgsProcessingProvider):
 | 
						|
 | 
						|
    def __init__(self):
 | 
						|
        super().__init__()
 | 
						|
        self.algs = []
 | 
						|
        self.externalAlgs = []
 | 
						|
 | 
						|
    def getAlgs(self):
 | 
						|
        algs = [AddTableField(),
 | 
						|
                Aggregate(),
 | 
						|
                Aspect(),
 | 
						|
                BasicStatisticsForField(),
 | 
						|
                CheckValidity(),
 | 
						|
                ConcaveHull(),
 | 
						|
                CreateAttributeIndex(),
 | 
						|
                CreateConstantRaster(),
 | 
						|
                Datasources2Vrt(),
 | 
						|
                DefineProjection(),
 | 
						|
                Delaunay(),
 | 
						|
                DeleteColumn(),
 | 
						|
                DeleteDuplicateGeometries(),
 | 
						|
                DeleteHoles(),
 | 
						|
                DensifyGeometries(),
 | 
						|
                DensifyGeometriesInterval(),
 | 
						|
                Difference(),
 | 
						|
                EliminateSelection(),
 | 
						|
                EquivalentNumField(),
 | 
						|
                ExecuteSQL(),
 | 
						|
                Explode(),
 | 
						|
                ExportGeometryInfo(),
 | 
						|
                ExtendLines(),
 | 
						|
                ExtentFromLayer(),
 | 
						|
                ExtractNodes(),
 | 
						|
                ExtractSpecificNodes(),
 | 
						|
                FieldsCalculator(),
 | 
						|
                FieldsMapper(),
 | 
						|
                FieldsPyculator(),
 | 
						|
                FindProjection(),
 | 
						|
                FixedDistanceBuffer(),
 | 
						|
                GeometryByExpression(),
 | 
						|
                GeometryConvert(),
 | 
						|
                Gridify(),
 | 
						|
                GridLine(),
 | 
						|
                GridPolygon(),
 | 
						|
                Heatmap(),
 | 
						|
                Hillshade(),
 | 
						|
                HubDistanceLines(),
 | 
						|
                HubDistancePoints(),
 | 
						|
                HypsometricCurves(),
 | 
						|
                IdwInterpolation(),
 | 
						|
                ImportIntoPostGIS(),
 | 
						|
                ImportIntoSpatialite(),
 | 
						|
                Intersection(),
 | 
						|
                LinesToPolygons(),
 | 
						|
                Merge(),
 | 
						|
                MinimumBoundingGeometry(),
 | 
						|
                NearestNeighbourAnalysis(),
 | 
						|
                OffsetLine(),
 | 
						|
                Orthogonalize(),
 | 
						|
                PointDistance(),
 | 
						|
                PointOnSurface(),
 | 
						|
                PointsAlongGeometry(),
 | 
						|
                PointsDisplacement(),
 | 
						|
                PointsFromLines(),
 | 
						|
                PointsFromPolygons(),
 | 
						|
                PointsInPolygon(),
 | 
						|
                PointsLayerFromTable(),
 | 
						|
                PointsToPaths(),
 | 
						|
                PoleOfInaccessibility(),
 | 
						|
                Polygonize(),
 | 
						|
                PolygonsToLines(),
 | 
						|
                PostGISExecuteSQL(),
 | 
						|
                RandomExtract(),
 | 
						|
                RandomExtractWithinSubsets(),
 | 
						|
                RandomPointsAlongLines(),
 | 
						|
                RandomPointsExtent(),
 | 
						|
                RandomPointsLayer(),
 | 
						|
                RandomPointsPolygons(),
 | 
						|
                RandomSelection(),
 | 
						|
                RandomSelectionWithinSubsets(),
 | 
						|
                RasterCalculator(),
 | 
						|
                RasterizeAlgorithm(),
 | 
						|
                RasterLayerStatistics(),
 | 
						|
                RectanglesOvalsDiamondsFixed(),
 | 
						|
                RectanglesOvalsDiamondsVariable(),
 | 
						|
                RegularPoints(),
 | 
						|
                Relief(),
 | 
						|
                ReverseLineDirection(),
 | 
						|
                Ruggedness(),
 | 
						|
                SelectByAttribute(),
 | 
						|
                SelectByExpression(),
 | 
						|
                ServiceAreaFromLayer(),
 | 
						|
                ServiceAreaFromPoint(),
 | 
						|
                SetMValue(),
 | 
						|
                SetRasterStyle(),
 | 
						|
                SetVectorStyle(),
 | 
						|
                SetZValue(),
 | 
						|
                ShortestPathLayerToPoint(),
 | 
						|
                ShortestPathPointToLayer(),
 | 
						|
                ShortestPathPointToPoint(),
 | 
						|
                SingleSidedBuffer(),
 | 
						|
                Slope(),
 | 
						|
                SnapGeometriesToLayer(),
 | 
						|
                SpatialiteExecuteSQL(),
 | 
						|
                SpatialIndex(),
 | 
						|
                SpatialJoin(),
 | 
						|
                SpatialJoinSummary(),
 | 
						|
                StatisticsByCategories(),
 | 
						|
                SumLines(),
 | 
						|
                SymmetricalDifference(),
 | 
						|
                TextToFloat(),
 | 
						|
                TinInterpolation(),
 | 
						|
                TopoColor(),
 | 
						|
                Translate(),
 | 
						|
                TruncateTable(),
 | 
						|
                Union(),
 | 
						|
                UniqueValues(),
 | 
						|
                VariableDistanceBuffer(),
 | 
						|
                VectorSplit(),
 | 
						|
                VoronoiPolygons(),
 | 
						|
                ZonalStatistics()
 | 
						|
                ]
 | 
						|
 | 
						|
        if hasPlotly:
 | 
						|
            from .BarPlot import BarPlot
 | 
						|
            from .BoxPlot import BoxPlot
 | 
						|
            from .MeanAndStdDevPlot import MeanAndStdDevPlot
 | 
						|
            from .PolarPlot import PolarPlot
 | 
						|
            from .RasterLayerHistogram import RasterLayerHistogram
 | 
						|
            from .VectorLayerHistogram import VectorLayerHistogram
 | 
						|
            from .VectorLayerScatterplot import VectorLayerScatterplot
 | 
						|
            from .VectorLayerScatterplot3D import VectorLayerScatterplot3D
 | 
						|
 | 
						|
            algs.extend([BarPlot(),
 | 
						|
                         BoxPlot(),
 | 
						|
                         MeanAndStdDevPlot(),
 | 
						|
                         PolarPlot(),
 | 
						|
                         RasterLayerHistogram(),
 | 
						|
                         VectorLayerHistogram(),
 | 
						|
                         VectorLayerScatterplot(),
 | 
						|
                         VectorLayerScatterplot3D()])
 | 
						|
 | 
						|
        # to store algs added by 3rd party plugins as scripts
 | 
						|
        folder = os.path.join(os.path.dirname(__file__), 'scripts')
 | 
						|
        scripts = ScriptUtils.loadFromFolder(folder)
 | 
						|
        for script in scripts:
 | 
						|
            script.allowEdit = False
 | 
						|
        algs.extend(scripts)
 | 
						|
 | 
						|
        return algs
 | 
						|
 | 
						|
    def id(self):
 | 
						|
        return 'qgis'
 | 
						|
 | 
						|
    def name(self):
 | 
						|
        return 'QGIS'
 | 
						|
 | 
						|
    def icon(self):
 | 
						|
        return QgsApplication.getThemeIcon("/providerQgis.svg")
 | 
						|
 | 
						|
    def svgIconPath(self):
 | 
						|
        return QgsApplication.iconPath("providerQgis.svg")
 | 
						|
 | 
						|
    def loadAlgorithms(self):
 | 
						|
        self.algs = self.getAlgs()
 | 
						|
        for a in self.algs:
 | 
						|
            self.addAlgorithm(a)
 | 
						|
        for a in self.externalAlgs:
 | 
						|
            self.addAlgorithm(a)
 | 
						|
 | 
						|
    def supportsNonFileBasedOutput(self):
 | 
						|
        return True
 |