QGIS/python/plugins/processing/lidar/LidarToolsAlgorithmProvider.py
2013-08-20 09:22:03 +02:00

101 lines
4.5 KiB
Python

# -*- coding: utf-8 -*-
"""
***************************************************************************
LidarToolsAlgorithmProvider.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'
# This will get replaced with a git SHA1 when you do a git archive
__revision__ = '$Format:%H$'
import os
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from processing.core.AlgorithmProvider import AlgorithmProvider
from processing.core.ProcessingUtils import ProcessingUtils
from processing.lidar.lastools.LasToolsUtils import LasToolsUtils
from processing.core.ProcessingConfig import Setting, ProcessingConfig
from processing.lidar.lastools.las2dem import las2dem
from processing.lidar.lastools.las2iso import las2iso
from processing.lidar.lastools.las2shp import las2shp
from processing.lidar.lastools.lasboundary import lasboundary
from processing.lidar.lastools.lasgrid import lasgrid
from processing.lidar.lastools.lasground import lasground
from processing.lidar.lastools.lasclassify import lasclassify
from processing.lidar.lastools.lasclip import lasclip
from processing.lidar.lastools.lasheight import lasheight
from processing.lidar.lastools.lasinfo import lasinfo
from processing.lidar.lastools.lasprecision import lasprecision
from processing.lidar.lastools.lassplit import lassplit
from processing.lidar.fusion.OpenViewerAction import OpenViewerAction
from processing.lidar.fusion.CanopyMaxima import CanopyMaxima
from processing.lidar.fusion.CanopyModel import CanopyModel
from processing.lidar.fusion.ClipData import ClipData
from processing.lidar.fusion.CloudMetrics import CloudMetrics
from processing.lidar.fusion.Cover import Cover
from processing.lidar.fusion.GridMetrics import GridMetrics
from processing.lidar.fusion.GridSurfaceCreate import GridSurfaceCreate
from processing.lidar.fusion.GroundFilter import GroundFilter
from processing.lidar.fusion.MergeData import MergeData
from processing.lidar.fusion.FilterData import FilterData
from processing.lidar.fusion.FusionUtils import FusionUtils
class LidarToolsAlgorithmProvider(AlgorithmProvider):
def __init__(self):
AlgorithmProvider.__init__(self)
self.activate = False
self.algsList = []
if ProcessingUtils.isWindows():
lastools = [las2shp(), lasboundary(), las2dem(), las2iso(), lasgrid(), lasground(),
lasinfo(), lasheight(), lasprecision(), lassplit(), lasclassify(), lasclip()]
else:
lastools = [lasinfo(), lasprecision()]
for alg in lastools:
alg.group = "LASTools"
self.algsList.extend(lastools)
if ProcessingUtils.isWindows():
self.actions.append(OpenViewerAction())
fusiontools = [CloudMetrics(), CanopyMaxima(), CanopyModel(), ClipData(), Cover(), FilterData(),
GridMetrics(), GroundFilter(), GridSurfaceCreate(), MergeData()]
for alg in fusiontools:
alg.group = "Fusion"
self.algsList.extend(fusiontools)
def initializeSettings(self):
AlgorithmProvider.initializeSettings(self)
ProcessingConfig.addSetting(Setting(self.getDescription(), LasToolsUtils.LASTOOLS_FOLDER, "LASTools folder", LasToolsUtils.LasToolsPath()))
ProcessingConfig.addSetting(Setting(self.getDescription(), FusionUtils.FUSION_FOLDER, "Fusion folder",
FusionUtils.FusionPath()))
def getName(self):
return "lidartools"
def getDescription(self):
return "Tools for LiDAR data"
def getIcon(self):
return QIcon(os.path.dirname(__file__) + "/../images/tool.png")
def _loadAlgorithms(self):
self.algs = self.algsList
def getSupportedOutputTableExtensions(self):
return ["csv"]