QGIS/python/plugins/processing/algs/gdal/GdalAlgorithmProvider.py

202 lines
6.4 KiB
Python
Raw Normal View History

2012-10-04 19:33:47 +02:00
# -*- coding: utf-8 -*-
"""
***************************************************************************
GdalAlgorithmProvider.py
---------------------
Date : August 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__ = 'August 2012'
__copyright__ = '(C) 2012, Victor Olaya'
2012-10-04 19:33:47 +02:00
# This will get replaced with a git SHA1 when you do a git archive
2012-10-04 19:33:47 +02:00
__revision__ = '$Format:%H$'
2012-09-15 18:25:25 +03:00
import os
from qgis.PyQt.QtCore import QCoreApplication
from qgis.core import (QgsApplication,
QgsProcessingProvider)
from processing.core.ProcessingConfig import ProcessingConfig, Setting
from .GdalUtils import GdalUtils
2017-08-14 05:41:54 +10:00
from .AssignProjection import AssignProjection
2017-08-14 05:05:39 +10:00
from .aspect import aspect
2017-08-15 21:29:47 +10:00
from .buildvrt import buildvrt
from .ClipRasterByExtent import ClipRasterByExtent
from .ClipRasterByMask import ClipRasterByMask
2017-08-14 05:55:50 +10:00
from .ColorRelief import ColorRelief
from .contour import contour
from .fillnodata import fillnodata
from .gdalinfo import gdalinfo
from .gdal2tiles import gdal2tiles
from .gdal2xyz import gdal2xyz
from .gdaladdo import gdaladdo
from .gdaltindex import gdaltindex
from .GridAverage import GridAverage
from .GridDataMetrics import GridDataMetrics
from .GridInverseDistance import GridInverseDistance
from .GridInverseDistanceNearestNeighbor import GridInverseDistanceNearestNeighbor
from .GridLinear import GridLinear
from .GridNearestNeighbor import GridNearestNeighbor
2017-08-31 12:10:45 +03:00
from .hillshade import hillshade
from .nearblack import nearblack
from .pct2rgb import pct2rgb
from .polygonize import polygonize
from .proximity import proximity
2017-09-07 19:13:06 +03:00
from .retile import retile
2017-08-30 17:53:14 +10:00
from .rgb2pct import rgb2pct
from .roughness import roughness
2017-08-31 19:43:54 +03:00
from .sieve import sieve
2017-08-31 14:39:51 +03:00
from .slope import slope
2017-08-30 18:13:51 +10:00
from .translate import translate
2017-08-31 14:21:20 +03:00
from .tpi import tpi
2017-08-14 05:49:18 +10:00
from .tri import tri
2017-08-14 05:05:39 +10:00
from .warp import warp
2017-08-30 17:53:14 +10:00
2017-06-05 15:32:38 +10:00
# from .merge import merge
# from .rasterize import rasterize
# from .extractprojection import ExtractProjection
# from .gdalcalc import gdalcalc
# from .rasterize_over import rasterize_over
2017-08-14 05:41:54 +10:00
2017-09-15 11:30:16 +03:00
from .Buffer import Buffer
from .OffsetCurve import OffsetCurve
from .ogrinfo import ogrinfo
from .OgrToPostGis import OgrToPostGis
from .PointsAlongLines import PointsAlongLines
2017-08-14 05:05:39 +10:00
2017-06-05 15:32:38 +10:00
# from .ogr2ogr import Ogr2Ogr
# from .ogr2ogrclip import Ogr2OgrClip
# from .ogr2ogrclipextent import Ogr2OgrClipExtent
# from .ogr2ogrtopostgislist import Ogr2OgrToPostGisList
# from .ogr2ogrdissolve import Ogr2OgrDissolve
# from .onesidebuffer import OneSideBuffer
# from .ogr2ogrtabletopostgislist import Ogr2OgrTableToPostGisList
# from .ogrsql import OgrSql
pluginPath = os.path.normpath(os.path.join(
os.path.split(os.path.dirname(__file__))[0], os.pardir))
2012-09-15 18:25:25 +03:00
class GdalAlgorithmProvider(QgsProcessingProvider):
2012-09-15 18:25:25 +03:00
def __init__(self):
super().__init__()
self.algs = []
2012-09-15 18:25:25 +03:00
def load(self):
ProcessingConfig.settingIcons[self.name()] = self.icon()
ProcessingConfig.addSetting(Setting(self.name(), 'ACTIVATE_GDAL',
self.tr('Activate'), True))
ProcessingConfig.addSetting(Setting(
self.name(),
GdalUtils.GDAL_HELP_PATH,
self.tr('Location of GDAL docs'),
GdalUtils.gdalHelpPath()))
ProcessingConfig.readSettings()
self.refreshAlgorithms()
return True
def unload(self):
ProcessingConfig.removeSetting('ACTIVATE_GDAL')
ProcessingConfig.removeSetting(GdalUtils.GDAL_HELP_PATH)
def isActive(self):
return ProcessingConfig.getSetting('ACTIVATE_GDAL')
def setActive(self, active):
ProcessingConfig.setSettingValue('ACTIVATE_GDAL', active)
def name(self):
version = GdalUtils.readableVersion()
return 'GDAL ({})'.format(version)
2012-09-15 18:25:25 +03:00
def id(self):
return 'gdal'
2012-09-15 18:25:25 +03:00
def icon(self):
return QgsApplication.getThemeIcon("/providerGdal.svg")
def svgIconPath(self):
return QgsApplication.iconPath("providerGdal.svg")
2012-09-15 18:25:25 +03:00
def loadAlgorithms(self):
2017-06-05 15:32:38 +10:00
self.algs = [
2017-08-14 05:41:54 +10:00
AssignProjection(),
2017-08-14 05:05:39 +10:00
aspect(),
2017-08-15 21:29:47 +10:00
buildvrt(),
ClipRasterByExtent(),
ClipRasterByMask(),
2017-08-14 05:55:50 +10:00
ColorRelief(),
contour(),
fillnodata(),
gdalinfo(),
gdal2tiles(),
gdal2xyz(),
gdaladdo(),
gdaltindex(),
GridAverage(),
GridDataMetrics(),
GridInverseDistance(),
GridInverseDistanceNearestNeighbor(),
GridLinear(),
GridNearestNeighbor(),
2017-08-31 12:10:45 +03:00
hillshade(),
2017-08-30 17:44:52 +10:00
nearblack(),
2017-08-31 12:10:45 +03:00
pct2rgb(),
polygonize(),
proximity(),
2017-09-07 19:13:06 +03:00
retile(),
2017-08-30 17:53:14 +10:00
rgb2pct(),
roughness(),
2017-08-31 19:43:54 +03:00
sieve(),
2017-08-31 14:39:51 +03:00
slope(),
2017-08-30 18:13:51 +10:00
translate(),
2017-08-31 14:21:20 +03:00
tpi(),
2017-08-14 05:49:18 +10:00
tri(),
2017-06-27 16:15:28 +10:00
warp(),
2017-06-05 15:32:38 +10:00
# merge(),
# rasterize(),
# ExtractProjection(),
# gdalcalc(),
# rasterize_over(),
# ----- OGR tools -----
2017-09-15 11:30:16 +03:00
Buffer(),
OffsetCurve(),
ogrinfo(),
OgrToPostGis(),
PointsAlongLines(),
2017-06-05 15:32:38 +10:00
# Ogr2Ogr(),
# Ogr2OgrClip(),
# Ogr2OgrClipExtent(),
# Ogr2OgrToPostGisList(),
# Ogr2OgrDissolve(),
# OneSideBuffer(),
# Ogr2OgrTableToPostGisList(),
# OgrSql(),
]
for a in self.algs:
self.addAlgorithm(a)
def supportedOutputRasterLayerExtensions(self):
2012-09-15 18:25:25 +03:00
return GdalUtils.getSupportedRasterExtensions()
def tr(self, string, context=''):
if context == '':
context = 'GdalAlgorithmProvider'
return QCoreApplication.translate(context, string)