123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- """
- ***************************************************************************
- Output.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'
- import sys
- from qgis.core import (QgsExpressionContext,
- QgsExpressionContextUtils,
- QgsExpression,
- QgsExpressionContextScope,
- QgsProject,
- QgsSettings,
- QgsVectorFileWriter,
- QgsProcessingUtils,
- QgsProcessingParameterDefinition,
- QgsProcessingOutputRasterLayer,
- QgsProcessingOutputVectorLayer,
- QgsProcessingOutputMapLayer,
- QgsProcessingOutputHtml,
- QgsProcessingOutputNumber,
- QgsProcessingOutputString,
- QgsProcessingOutputBoolean,
- QgsProcessingOutputFolder,
- QgsProcessingOutputMultipleLayers,
- QgsProcessingOutputPointCloudLayer)
- def getOutputFromString(s):
- try:
- if "|" in s and s.startswith("Output"):
- tokens = s.split("|")
- params = [t if str(t) != "None" else None for t in tokens[1:]]
- clazz = getattr(sys.modules[__name__], tokens[0])
- return clazz(*params)
- else:
- tokens = s.split("=")
- if tokens[1].lower()[: len('output')] != 'output':
- return None
- name = tokens[0]
- description = tokens[0]
- token = tokens[1].strip()[len('output') + 1:]
- out = None
- if token.lower().strip().startswith('outputraster'):
- out = QgsProcessingOutputRasterLayer(name, description)
- elif token.lower().strip() == 'outputvector':
- out = QgsProcessingOutputVectorLayer(name, description)
- elif token.lower().strip() == 'outputlayer':
- out = QgsProcessingOutputMapLayer(name, description)
- elif token.lower().strip() == 'outputmultilayers':
- out = QgsProcessingOutputMultipleLayers(name, description)
- # elif token.lower().strip() == 'vector point':
- # out = OutputVector(datatype=[dataobjects.TYPE_VECTOR_POINT])
- # elif token.lower().strip() == 'vector line':
- # out = OutputVector(datatype=[OutputVector.TYPE_VECTOR_LINE])
- # elif token.lower().strip() == 'vector polygon':
- # out = OutputVector(datatype=[OutputVector.TYPE_VECTOR_POLYGON])
- # elif token.lower().strip().startswith('table'):
- # out = OutputTable()
- elif token.lower().strip().startswith('outputhtml'):
- out = QgsProcessingOutputHtml(name, description)
- # elif token.lower().strip().startswith('file'):
- # out = OutputFile()
- # ext = token.strip()[len('file') + 1:]
- # if ext:
- # out.ext = ext
- elif token.lower().strip().startswith('outputfolder'):
- out = QgsProcessingOutputFolder(name, description)
- elif token.lower().strip().startswith('outputnumber'):
- out = QgsProcessingOutputNumber(name, description)
- elif token.lower().strip().startswith('outputstring'):
- out = QgsProcessingOutputString(name, description)
- elif token.lower().strip().startswith('outputboolean'):
- out = QgsProcessingOutputBoolean(name, description)
- elif token.lower().strip().startswith('outputPointCloud'):
- out = QgsProcessingOutputPointCloudLayer(name, description)
- # elif token.lower().strip().startswith('extent'):
- # out = OutputExtent()
- return out
- except:
- return None
|