| 
    QGIS API Documentation
    3.26.3-Buenos Aires (65e4edfdad)
    
   | 
 
 
 
 
Go to the documentation of this file.
   33 #include <QRegularExpression> 
   34 #include <QRegularExpressionMatch> 
   38   qDeleteAll( mParameters );
 
   39   qDeleteAll( mOutputs );
 
   44   std::unique_ptr< QgsProcessingAlgorithm > creation( 
createInstance() );
 
   48   creation->initAlgorithm( configuration );
 
   49   return creation.release();
 
   55     return QStringLiteral( 
"%1:%2" ).arg( mProvider->
id(), 
name() );
 
  104     if ( !def->checkValueIsAcceptable( parameters.value( def->name() ), &context ) )
 
  117           *message = QObject::tr( 
"Incorrect parameter value for %1" ).arg( def->name() );
 
  144       if ( definition->isDestination() )
 
  171   else if ( 
c.scopeCount() == 0 )
 
  190   bool foundCrs = 
false;
 
  203         else if ( !foundCrs && layer->
crs().
isValid() )
 
  215         if ( foundCrs && source->sourceCrs().isValid() && 
crs != source->sourceCrs() )
 
  219         else if ( !foundCrs && source->sourceCrs().isValid() )
 
  222           crs = source->sourceCrs();
 
  229       const auto constLayers = layers;
 
  235         if ( foundCrs && layer->crs().isValid() && 
crs != layer->crs() )
 
  239         else if ( !foundCrs && layer->crs().isValid() )
 
  249       if ( foundCrs && extentCrs.
isValid() && 
crs != extentCrs )
 
  253       else if ( !foundCrs && extentCrs.
isValid() )
 
  262       if ( foundCrs && pointCrs.
isValid() && 
crs != pointCrs )
 
  266       else if ( !foundCrs && pointCrs.
isValid() )
 
  275       if ( foundCrs && geomCrs.
isValid() && 
crs != geomCrs )
 
  279       else if ( !foundCrs && geomCrs.
isValid() )
 
  292   QString s = QStringLiteral( 
"processing.run(\"%1\"," ).arg( 
id() );
 
  300     if ( !parameters.contains( def->name() ) )
 
  303     parts << QStringLiteral( 
"'%1':%2" ).arg( def->name(), def->valueAsPythonString( parameters.value( def->name() ), context ) );
 
  306   s += QStringLiteral( 
" {%1})" ).arg( parts.join( 
',' ) );
 
  314   parts.append( QStringLiteral( 
"qgis_process" ) );
 
  315   parts.append( QStringLiteral( 
"run" ) );
 
  316   parts.append( 
id() );
 
  318   QgsProcessingContext::ProcessArgumentFlags argumentFlags;
 
  325   auto escapeIfNeeded = []( 
const QString & input ) -> QString
 
  328     const thread_local QRegularExpression nonAlphaNumericRx( QStringLiteral( 
"[^a-zA-Z0-9.\\-/_]" ) );
 
  329     if ( nonAlphaNumericRx.match( input ).hasMatch() )
 
  331       QString escaped = input;
 
  332       escaped.replace( 
'\'', QLatin1String( 
"'\\''" ) );
 
  333       return QStringLiteral( 
"'%1'" ).arg( escaped );
 
  346     if ( !parameters.contains( def->name() ) )
 
  349     const QStringList partValues = def->valueAsStringList( parameters.value( def->name() ), context, ok );
 
  353     for ( 
const QString &partValue : partValues )
 
  355       parts << QStringLiteral( 
"--%1=%2" ).arg( def->name(), escapeIfNeeded( partValue ) );
 
  359   return parts.join( 
' ' );
 
  368     properties.remove( QStringLiteral( 
"project_path" ) );
 
  370   QVariantMap paramValues;
 
  376     if ( !parameters.contains( def->name() ) )
 
  379     paramValues.insert( def->name(), def->valueAsJsonObject( parameters.value( def->name() ), context ) );
 
  382   properties.insert( QStringLiteral( 
"inputs" ), paramValues );
 
  393   if ( existingDef && existingDef->
name() == definition->
name() ) 
 
  395     QgsMessageLog::logMessage( QObject::tr( 
"Duplicate parameter %1 registered for alg %2" ).arg( definition->
name(), 
id() ), QObject::tr( 
"Processing" ) );
 
  407   mParameters << definition;
 
  411     return createAutoOutputForParameter( definition );
 
  422     mParameters.removeAll( def );
 
  429       mOutputs.removeAll( outputDef );
 
  442     QgsMessageLog::logMessage( QObject::tr( 
"Duplicate output %1 registered for alg %2" ).arg( definition->
name(), 
id() ), QObject::tr( 
"Processing" ) );
 
  447   mOutputs << definition;
 
  458   return QVariantMap();
 
  466     if ( def->name() == 
name )
 
  473     if ( def->name().compare( 
name, Qt::CaseInsensitive ) == 0 )
 
  495     if ( def->isDestination() )
 
  505     if ( def->name().compare( 
name, Qt::CaseInsensitive ) == 0 )
 
  515     if ( def->type() == QLatin1String( 
"outputHtml" ) )
 
  528   std::unique_ptr< QgsProcessingAlgorithm > alg( 
create( configuration ) );
 
  532   bool res = alg->prepare( parameters, context, feedback );
 
  534     return QVariantMap();
 
  539     runRes = alg->runPrepared( parameters, context, feedback );
 
  543     if ( !catchExceptions )
 
  548     return QVariantMap();
 
  554   QVariantMap ppRes = alg->postProcess( context, feedback );
 
  555   if ( !ppRes.isEmpty() )
 
  563   Q_ASSERT_X( QThread::currentThread() == context.
temporaryLayerStore()->thread(), 
"QgsProcessingAlgorithm::prepare", 
"prepare() must be called from the same thread as context was created in" );
 
  564   Q_ASSERT_X( !mHasPrepared, 
"QgsProcessingAlgorithm::prepare", 
"prepare() has already been called for the algorithm instance" );
 
  580   Q_ASSERT_X( mHasPrepared, 
"QgsProcessingAlgorithm::runPrepared", QStringLiteral( 
"prepare() was not called for the algorithm instance %1" ).arg( 
name() ).toLatin1() );
 
  581   Q_ASSERT_X( !mHasExecuted, 
"QgsProcessingAlgorithm::runPrepared", 
"runPrepared() was already called for this algorithm instance" );
 
  587   if ( context.
thread() == QThread::currentThread() )
 
  592     runContext = &context;
 
  603     mLocalContext->copyThreadSafeSettings( context );
 
  605     runContext = mLocalContext.get();
 
  610     QVariantMap runResults = 
processAlgorithm( parameters, *runContext, feedback );
 
  618       mLocalContext->pushToThread( context.
thread() );
 
  627       mLocalContext->pushToThread( context.
thread() );
 
  636   Q_ASSERT_X( QThread::currentThread() == context.
temporaryLayerStore()->thread(), 
"QgsProcessingAlgorithm::postProcess", 
"postProcess() must be called from the same thread the context was created in" );
 
  637   Q_ASSERT_X( mHasExecuted, 
"QgsProcessingAlgorithm::postProcess", QStringLiteral( 
"algorithm instance %1 was not executed" ).arg( 
name() ).toLatin1() );
 
  638   Q_ASSERT_X( !mHasPostProcessed, 
"QgsProcessingAlgorithm::postProcess", 
"postProcess() was already called for this algorithm instance" );
 
  647     mLocalContext.reset();
 
  650   mHasPostProcessed = 
true;
 
  659     return QVariantMap();
 
  718 QgsFeatureSink *
QgsProcessingAlgorithm::parameterAsSink( 
const QVariantMap ¶meters, 
const QString &name, 
QgsProcessingContext &context, QString &destinationIdentifier, 
const QgsFields &fields, 
QgsWkbTypes::Type geometryType, 
const QgsCoordinateReferenceSystem &
crs, QgsFeatureSink::SinkFlags sinkFlags, 
const QVariantMap &createOptions, 
const QStringList &datasourceOptions, 
const QStringList &layerOptions )
 const 
  723   return QgsProcessingParameters::parameterAsSink( 
parameterDefinition( 
name ), parameters, fields, geometryType, 
crs, context, destinationIdentifier, sinkFlags, createOptions, datasourceOptions, layerOptions );
 
  888   if ( !parameters.contains( 
name ) )
 
  889     return QObject::tr( 
"Could not load source layer for %1: no value specified for parameter" ).arg( 
name );
 
  892     QVariant var = parameters.value( 
name );
 
  911     if ( !var.toString().isEmpty() )
 
  912       return QObject::tr( 
"Could not load source layer for %1: %2 not found" ).arg( 
name, var.toString() );
 
  914       return QObject::tr( 
"Could not load source layer for %1: invalid value" ).arg( 
name );
 
  920   if ( !parameters.contains( 
name ) )
 
  921     return QObject::tr( 
"Could not load source layer for %1: no value specified for parameter" ).arg( 
name );
 
  924     QVariant var = parameters.value( 
name );
 
  933     if ( !var.toString().isEmpty() )
 
  934       return QObject::tr( 
"Could not load source layer for %1: %2 not found" ).arg( 
name, var.toString() );
 
  936       return QObject::tr( 
"Could not load source layer for %1: invalid value" ).arg( 
name );
 
  942   if ( !parameters.contains( 
name ) )
 
  943     return QObject::tr( 
"Could not create destination layer for %1: no value specified for parameter" ).arg( 
name );
 
  946     QVariant var = parameters.value( 
name );
 
  960     if ( !var.toString().isEmpty() )
 
  961       return QObject::tr( 
"Could not create destination layer for %1: %2" ).arg( 
name, var.toString() );
 
  963       return QObject::tr( 
"Could not create destination layer for %1: invalid value" ).arg( 
name );
 
  970   Q_UNUSED( parameters );
 
  971   if ( !
name.isEmpty() )
 
  972     return QObject::tr( 
"Could not write feature into %1" ).arg( 
name );
 
  974     return QObject::tr( 
"Could not write feature" );
 
  993   output->setAutoCreated( 
true );
 
 1027   return QStringLiteral( 
"INPUT" );
 
 1032   return QObject::tr( 
"Input layer" );
 
 1037   return QList<int>();
 
 1052   return QgsFeatureSink::SinkFlags();
 
 1057   return inputWkbType;
 
 1077     return mSource->sourceCrs();
 
 1086   std::unique_ptr< QgsFeatureSink > sink( 
parameterAsSink( parameters, QStringLiteral( 
"OUTPUT" ), context, dest,
 
 1101   long count = mSource->featureCount();
 
 1106   double step = count > 0 ? 100.0 / count : 1;
 
 1117     for ( 
QgsFeature transformedFeature : transformed )
 
 1129   QVariantMap outputs;
 
 1130   outputs.insert( QStringLiteral( 
"OUTPUT" ), dest );
 
 1141   const QgsVectorLayer *layer = qobject_cast< const QgsVectorLayer * >( l );
 
 1182   if ( sink == QLatin1String( 
"OUTPUT" ) )
 
 1186       const VectorProperties inputProps = sourceProperties.value( QStringLiteral( 
"INPUT" ) );
 
 1195       std::unique_ptr< QgsProcessingFeatureSource > source( 
parameterAsSource( parameters, QStringLiteral( 
"INPUT" ), context ) );
 
  
QStringList asQgisProcessArguments(QgsProcessingContext::ProcessArgumentFlags flags=QgsProcessingContext::ProcessArgumentFlags()) const
Returns list of the equivalent qgis_process arguments representing the settings from the context.
 
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
 
QString parameterAsEnumString(const QVariantMap ¶meters, const QString &name, const QgsProcessingContext &context) const
Evaluates the parameter with matching name to a static enum string.
 
QgsCoordinateReferenceSystem crs
 
virtual QString shortDescription() const
Returns an optional translated short description of the algorithm.
 
virtual QgsProcessingOutputDefinition * toOutputDefinition() const =0
Returns a new QgsProcessingOutputDefinition corresponding to the definition of the destination parame...
 
QStringList parameterAsEnumStrings(const QVariantMap ¶meters, const QString &name, const QgsProcessingContext &context) const
Evaluates the parameter with matching name to list of static enum strings.
 
void setProgress(double progress)
Sets the current progress for the feedback object.
 
static QVariantList parameterAsMatrix(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, QgsProcessingContext &context)
Evaluates the parameter with matching definition to a matrix/table of values.
 
void appendScopes(const QList< QgsExpressionContextScope * > &scopes)
Appends a list of scopes to the end of the context.
 
static QString parameterAsCompatibleSourceLayerPath(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, QgsProcessingContext &context, const QStringList &compatibleFormats, const QString &preferredFormat=QString("shp"), QgsProcessingFeedback *feedback=nullptr)
Evaluates the parameter with matching definition to a source vector layer file path of compatible for...
 
bool prepare(const QVariantMap ¶meters, QgsProcessingContext &context, QgsProcessingFeedback *feedback)
Prepares the algorithm for execution.
 
void removeParameter(const QString &name)
Removes the parameter with matching name from the algorithm, and deletes any existing definition.
 
static QgsCoordinateReferenceSystem parameterAsCrs(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, QgsProcessingContext &context)
Evaluates the parameter with matching definition to a coordinate reference system.
 
QStringList parameterAsFileList(const QVariantMap ¶meters, const QString &name, QgsProcessingContext &context) const
Evaluates the parameter with matching name to a list of files (for QgsProcessingParameterMultipleLaye...
 
static QString parameterAsConnectionName(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, const QgsProcessingContext &context)
Evaluates the parameter with matching definition to a connection name string.
 
static QString invalidSourceError(const QVariantMap ¶meters, const QString &name)
Returns a user-friendly string to use as an error when a source parameter could not be loaded.
 
QgsPrintLayout * parameterAsLayout(const QVariantMap ¶meters, const QString &name, QgsProcessingContext &context)
Evaluates the parameter with matching name to a print layout.
 
A store for object properties.
 
virtual bool canExecute(QString *errorMessage=nullptr) const
Returns true if the algorithm can execute.
 
QString parameterAsDatabaseTableName(const QVariantMap ¶meters, const QString &name, QgsProcessingContext &context) const
Evaluates the parameter with matching name to a database table name string.
 
QgsProcessingAlgorithm * mAlgorithm
Pointer to algorithm which owns this parameter.
 
void prepareSource(const QVariantMap ¶meters, QgsProcessingContext &context)
Read the source from parameters and context and set it.
 
static QgsExpressionContextScope * globalScope()
Creates a new scope which contains variables and functions relating to the global QGIS context.
 
static QList< int > parameterAsEnums(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, const QgsProcessingContext &context)
Evaluates the parameter with matching definition to list of enum values.
 
static QStringList parameterAsEnumStrings(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, const QgsProcessingContext &context)
Evaluates the parameter with matching definition to list of static enum strings.
 
static QgsGeometry parameterAsGeometry(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, QgsProcessingContext &context, const QgsCoordinateReferenceSystem &crs=QgsCoordinateReferenceSystem())
Evaluates the parameter with matching definition to a geometry.
 
QgsProject * project() const
Returns the project in which the algorithm is being executed.
 
@ IncludeProjectPath
Include the associated project path argument.
 
virtual QString id() const =0
Returns the unique provider id, used for identifying the provider.
 
QColor parameterAsColor(const QVariantMap ¶meters, const QString &name, QgsProcessingContext &context) const
Evaluates the parameter with matching name to a color, or returns an invalid color if the parameter w...
 
QgsCoordinateReferenceSystem crs
Coordinate Reference System.
 
Base class for providing feedback from a processing algorithm.
 
Represents a map layer supporting display of point clouds.
 
virtual QgsWkbTypes::Type outputWkbType(QgsWkbTypes::Type inputWkbType) const
Maps the input WKB geometry type (inputWkbType) to the corresponding output WKB type generated by the...
 
static QString parameterAsDatabaseTableName(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, const QgsProcessingContext &context)
Evaluates the parameter with matching definition to a database table name.
 
const QgsCoordinateReferenceSystem & crs
 
QgsGeometry parameterAsExtentGeometry(const QVariantMap ¶meters, const QString &name, QgsProcessingContext &context, const QgsCoordinateReferenceSystem &crs=QgsCoordinateReferenceSystem()) const
Evaluates the parameter with matching name to a rectangular extent, and returns a geometry covering t...
 
static QStringList parameterAsFields(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, QgsProcessingContext &context)
Evaluates the parameter with matching definition to a list of fields.
 
QList< int > parameterAsInts(const QVariantMap ¶meters, const QString &name, const QgsProcessingContext &context) const
Evaluates the parameter with matching name to a list of integer values.
 
virtual void reportError(const QString &error, bool fatalError=false)
Reports that the algorithm encountered an error while executing.
 
QString parameterAsCompatibleSourceLayerPath(const QVariantMap ¶meters, const QString &name, QgsProcessingContext &context, const QStringList &compatibleFormats, const QString &preferredFormat=QString("shp"), QgsProcessingFeedback *feedback=nullptr) const
Evaluates the parameter with matching name to a source vector layer file path of compatible format.
 
@ TypeVectorPolygon
Vector polygon layers.
 
QgsExpressionContextScope * createExpressionContextScope() const
Returns an expression context scope suitable for this source.
 
bool addParameter(QgsProcessingParameterDefinition *parameterDefinition, bool createOutput=true)
Adds a parameter definition to the algorithm.
 
QgsVectorLayer * parameterAsVectorLayer(const QVariantMap ¶meters, const QString &name, QgsProcessingContext &context) const
Evaluates the parameter with matching name to a vector layer.
 
Container of fields for a vector layer.
 
virtual QString inputParameterDescription() const
Returns the translated description of the parameter corresponding to the input layer.
 
static QgsMapLayer * parameterAsLayer(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, QgsProcessingContext &context, QgsProcessingUtils::LayerHint layerHint=QgsProcessingUtils::LayerHint::UnknownType)
Evaluates the parameter with matching definition to a map layer.
 
Abstract base class for processing providers.
 
static QgsCoordinateReferenceSystem parameterAsExtentCrs(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, QgsProcessingContext &context)
Returns the coordinate reference system associated with an extent parameter value.
 
virtual void initParameters(const QVariantMap &configuration=QVariantMap())
Initializes any extra parameters added by the algorithm subclass.
 
QgsCoordinateReferenceSystem parameterAsExtentCrs(const QVariantMap ¶meters, const QString &name, QgsProcessingContext &context) const
Returns the coordinate reference system associated with an extent parameter value.
 
bool isCanceled() const SIP_HOLDGIL
Tells whether the operation has been canceled already.
 
static QString typeName()
Returns the type name for the parameter class.
 
QThread * thread()
Returns the thread in which the context lives.
 
static QString typeName()
Returns the type name for the parameter class.
 
virtual QgsProcessingAlgorithm * createInstance() const =0
Creates a new instance of the algorithm class.
 
Base class for the definition of processing parameters.
 
@ TypeVectorLine
Vector line layers.
 
virtual QVariantMap asMap(const QVariantMap ¶meters, QgsProcessingContext &context) const
Returns a JSON serializable variant map containing the specified parameters and context settings.
 
virtual QString svgIconPath() const
Returns a path to an SVG version of the algorithm's icon.
 
An input feature source (such as vector layers) parameter for processing algorithms.
 
Encapsulates settings relating to a feature sink or output raster layer for a processing algorithm.
 
Type
The WKB type describes the number of dimensions a geometry has.
 
QVariantMap run(const QVariantMap ¶meters, QgsProcessingContext &context, QgsProcessingFeedback *feedback, bool *ok=nullptr, const QVariantMap &configuration=QVariantMap(), bool catchExceptions=true) const SIP_THROW(QgsProcessingException)
Executes the algorithm using the specified parameters.
 
virtual bool validateInputCrs(const QVariantMap ¶meters, QgsProcessingContext &context) const
Checks whether the coordinate reference systems for the specified set of parameters are valid for the...
 
Type propertyType() const
Returns the property type.
 
bool supportInPlaceEdit(const QgsMapLayer *layer) const override
Checks whether this algorithm supports in-place editing on the given layer Default implementation for...
 
virtual bool prepareAlgorithm(const QVariantMap ¶meters, QgsProcessingContext &context, QgsProcessingFeedback *feedback) SIP_THROW(QgsProcessingException)
Prepares the algorithm to run using the specified parameters.
 
int parameterAsEnum(const QVariantMap ¶meters, const QString &name, const QgsProcessingContext &context) const
Evaluates the parameter with matching name to a enum value.
 
static QString iconPath(const QString &iconFile)
Returns path to the desired icon file.
 
QString parameterAsString(const QVariantMap ¶meters, const QString &name, const QgsProcessingContext &context) const
Evaluates the parameter with matching name to a static string value.
 
@ TypeVectorPoint
Vector point layers.
 
static QString parameterAsSchema(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, const QgsProcessingContext &context)
Evaluates the parameter with matching definition to a database schema name.
 
static QgsRasterLayer * parameterAsRasterLayer(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, QgsProcessingContext &context)
Evaluates the parameter with matching definition to a raster layer.
 
QgsProperty source
Source definition.
 
const QgsProcessingOutputDefinition * outputDefinition(const QString &name) const
Returns a matching output by name.
 
virtual bool checkParameterValues(const QVariantMap ¶meters, QgsProcessingContext &context, QString *message=nullptr) const
Checks the supplied parameter values to verify that they satisfy the requirements of this algorithm i...
 
QList< QgsExpressionContextScope * > takeScopes()
Returns all scopes from this context and remove them, leaving this context without any context.
 
A rectangle specified with double values.
 
double parameterAsDouble(const QVariantMap ¶meters, const QString &name, const QgsProcessingContext &context) const
Evaluates the parameter with matching name to a static double value.
 
virtual QgsFeatureSink::SinkFlags sinkFlags() const
Returns the feature sink flags to be used for the output.
 
QVariant value(const QgsExpressionContext &context, const QVariant &defaultValue=QVariant(), bool *ok=nullptr) const
Calculates the current value of the property, including any transforms which are set for the property...
 
@ Available
Properties are available.
 
QList< const QgsProcessingParameterDefinition * > QgsProcessingParameterDefinitions
List of processing parameters.
 
QgsCoordinateReferenceSystem parameterAsPointCrs(const QVariantMap ¶meters, const QString &name, QgsProcessingContext &context) const
Returns the coordinate reference system associated with an point parameter value.
 
virtual QgsProcessingFeatureSource::Flag sourceFlags() const
Returns the processing feature source flags to be used in the algorithm.
 
static QString typeName()
Returns the type name for the parameter class.
 
bool parameterAsBoolean(const QVariantMap ¶meters, const QString &name, const QgsProcessingContext &context) const
Evaluates the parameter with matching name to a static boolean value.
 
void setSupportsNonFileBasedOutput(bool supportsNonFileBasedOutput)
Sets whether the destination parameter supports non filed-based outputs, such as memory layers or dir...
 
A feature sink output for processing algorithms.
 
static QList< double > parameterAsRange(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, QgsProcessingContext &context)
Evaluates the parameter with matching definition to a range of values.
 
Base class for all parameter definitions which represent file or layer destinations,...
 
static QString parameterAsFile(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, QgsProcessingContext &context)
Evaluates the parameter with matching definition to a file/folder name.
 
QString parameterAsOutputLayer(const QVariantMap ¶meters, const QString &name, QgsProcessingContext &context) const
Evaluates the parameter with matching name to a output layer destination.
 
Base class for the definition of processing outputs.
 
static QList< QgsMapLayer * > parameterAsLayerList(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, QgsProcessingContext &context)
Evaluates the parameter with matching definition to a list of map layers.
 
bool addOutput(QgsProcessingOutputDefinition *outputDefinition)
Adds an output definition to the algorithm.
 
Encapsulates settings relating to a feature source input to a processing algorithm.
 
bool autoCreated() const
Returns true if the output was automatically created when adding a parameter.
 
This class wraps a request for features to a vector layer (or directly its vector data provider).
 
QString parameterAsFile(const QVariantMap ¶meters, const QString &name, QgsProcessingContext &context) const
Evaluates the parameter with matching name to a file/folder name.
 
static QgsExpressionContextScope * projectScope(const QgsProject *project)
Creates a new scope which contains variables and functions relating to a QGIS project.
 
static QgsGeometry parameterAsExtentGeometry(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, QgsProcessingContext &context, const QgsCoordinateReferenceSystem &crs=QgsCoordinateReferenceSystem())
Evaluates the parameter with matching definition to a rectangular extent, and returns a geometry cove...
 
QList< QgsMapLayer * > parameterAsLayerList(const QVariantMap ¶meters, const QString &name, QgsProcessingContext &context) const
Evaluates the parameter with matching name to a list of map layers.
 
Print layout, a QgsLayout subclass for static or atlas-based layouts.
 
QgsLayoutItem * parameterAsLayoutItem(const QVariantMap ¶meters, const QString &name, QgsProcessingContext &context, QgsPrintLayout *layout)
Evaluates the parameter with matching name to a print layout item, taken from the specified layout.
 
static QgsRectangle parameterAsExtent(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, QgsProcessingContext &context, const QgsCoordinateReferenceSystem &crs=QgsCoordinateReferenceSystem())
Evaluates the parameter with matching definition to a rectangular extent.
 
void takeResultsFrom(QgsProcessingContext &context)
Takes the results from another context and merges them with the results currently stored in this cont...
 
@ TypeVector
Tables (i.e. vector layers with or without geometry). When used for a sink this indicates the sink ha...
 
virtual QString name() const =0
Returns the algorithm name, used for identifying the algorithm.
 
QString id() const
Returns the unique ID for the algorithm, which is a combination of the algorithm provider's ID and th...
 
void initAlgorithm(const QVariantMap &configuration=QVariantMap()) override
Initializes the algorithm using the specified configuration.
 
QgsAnnotationLayer * parameterAsAnnotationLayer(const QVariantMap ¶meters, const QString &name, QgsProcessingContext &context) const
Evaluates the parameter with matching name to an annotation layer.
 
static QString typeName()
Returns the type name for the parameter class.
 
static QString typeName()
Returns the type name for the parameter class.
 
virtual QVariantMap processAlgorithm(const QVariantMap ¶meters, QgsProcessingContext &context, QgsProcessingFeedback *feedback) SIP_THROW(QgsProcessingException)=0
Runs the algorithm using the specified parameters.
 
static QString typeName()
Returns the type name for the parameter class.
 
static QgsVectorLayer * parameterAsVectorLayer(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, QgsProcessingContext &context)
Evaluates the parameter with matching definition to a vector layer.
 
static QgsPointXY parameterAsPoint(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, QgsProcessingContext &context, const QgsCoordinateReferenceSystem &crs=QgsCoordinateReferenceSystem())
Evaluates the parameter with matching definition to a point.
 
virtual QgsFeatureList processFeature(const QgsFeature &feature, QgsProcessingContext &context, QgsProcessingFeedback *feedback) SIP_THROW(QgsProcessingException)=0
Processes an individual input feature from the source.
 
static QDateTime parameterAsDateTime(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, const QgsProcessingContext &context)
Evaluates the parameter with matching definition to a static datetime value.
 
Contains information about the context in which a processing algorithm is executed.
 
virtual QgsProcessingAlgorithm::VectorProperties sinkProperties(const QString &sink, const QVariantMap ¶meters, QgsProcessingContext &context, const QMap< QString, QgsProcessingAlgorithm::VectorProperties > &sourceProperties) const
Returns the vector properties which will be used for the sink with matching name.
 
QgsPointCloudLayer * parameterAsPointCloudLayer(const QVariantMap ¶meters, const QString &name, QgsProcessingContext &context) const
Evaluates the parameter with matching name to a point cloud layer.
 
static QString invalidRasterError(const QVariantMap ¶meters, const QString &name)
Returns a user-friendly string to use as an error when a raster layer input could not be loaded.
 
QgsProcessingAlgorithm::Flags flags() const override
Returns the flags indicating how and when the algorithm operates and should be exposed to users.
 
static QgsAnnotationLayer * parameterAsAnnotationLayer(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, QgsProcessingContext &context)
Evaluates the parameter with matching definition to an annotation layer.
 
Represents a mesh layer supporting display of data on structured or unstructured meshes.
 
virtual ~QgsProcessingAlgorithm()
 
QString name() const
Returns the name of the parameter.
 
static QString parameterAsCompatibleSourceLayerPathAndLayerName(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, QgsProcessingContext &context, const QStringList &compatibleFormats, const QString &preferredFormat=QString("shp"), QgsProcessingFeedback *feedback=nullptr, QString *layerName=nullptr)
Evaluates the parameter with matching definition to a source vector layer file path and layer name of...
 
QVariantMap processAlgorithm(const QVariantMap ¶meters, QgsProcessingContext &context, QgsProcessingFeedback *feedback) override SIP_THROW(QgsProcessingException)
Runs the algorithm using the specified parameters.
 
virtual QString asPythonCommand(const QVariantMap ¶meters, QgsProcessingContext &context) const
Returns a Python command string which can be executed to run the algorithm using the specified parame...
 
@ TypeVectorAnyGeometry
Any vector layer with geometry.
 
bool hasHtmlOutputs() const
Returns true if this algorithm generates HTML outputs.
 
QStringList parameterAsFields(const QVariantMap ¶meters, const QString &name, QgsProcessingContext &context) const
Evaluates the parameter with matching name to a list of fields.
 
static QList< int > parameterAsInts(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, const QgsProcessingContext &context)
Evaluates the parameter with matching definition to a list of integer values.
 
QString parameterAsSchema(const QVariantMap ¶meters, const QString &name, QgsProcessingContext &context) const
Evaluates the parameter with matching name to a database schema name string.
 
static QgsExpressionContextScope * processingAlgorithmScope(const QgsProcessingAlgorithm *algorithm, const QVariantMap ¶meters, QgsProcessingContext &context)
Creates a new scope which contains variables and functions relating to a processing algorithm,...
 
virtual QgsCoordinateReferenceSystem outputCrs(const QgsCoordinateReferenceSystem &inputCrs) const
Maps the input source coordinate reference system (inputCrs) to a corresponding output CRS generated ...
 
QList< QgsFeature > QgsFeatureList
 
QgsGeometry parameterAsGeometry(const QVariantMap ¶meters, const QString &name, QgsProcessingContext &context, const QgsCoordinateReferenceSystem &crs=QgsCoordinateReferenceSystem()) const
Evaluates the parameter with matching name to a geometry.
 
static void logMessage(const QString &message, const QString &tag=QString(), Qgis::MessageLevel level=Qgis::MessageLevel::Warning, bool notifyUser=true)
Adds a message to the log instance (and creates it if necessary).
 
bool isValid() const
Returns whether this CRS is correctly initialized and usable.
 
QVariantMap exportToMap() const
Exports the context's settings to a variant map.
 
virtual QString shortHelpString() const
Returns a localised short helper string for the algorithm.
 
static QgsPrintLayout * parameterAsLayout(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, QgsProcessingContext &context)
Evaluates the parameter with matching definition to a print layout.
 
static QgsCoordinateReferenceSystem parameterAsPointCrs(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, QgsProcessingContext &context)
Returns the coordinate reference system associated with an point parameter value.
 
void setExpressionContext(const QgsExpressionContext &context)
Sets the expression context.
 
QgsCoordinateReferenceSystem parameterAsGeometryCrs(const QVariantMap ¶meters, const QString &name, QgsProcessingContext &context) const
Returns the coordinate reference system associated with a geometry parameter value.
 
QList< double > parameterAsRange(const QVariantMap ¶meters, const QString &name, QgsProcessingContext &context) const
Evaluates the parameter with matching name to a range of values.
 
QString parameterAsConnectionName(const QVariantMap ¶meters, const QString &name, QgsProcessingContext &context) const
Evaluates the parameter with matching name to a connection name string.
 
@ FlagRequiresProject
The algorithm requires that a valid QgsProject is available from the processing context in order to e...
 
QgsMapLayer * parameterAsLayer(const QVariantMap ¶meters, const QString &name, QgsProcessingContext &context) const
Evaluates the parameter with matching name to a map layer.
 
Base class for graphical items within a QgsLayout.
 
QgsRectangle parameterAsExtent(const QVariantMap ¶meters, const QString &name, QgsProcessingContext &context, const QgsCoordinateReferenceSystem &crs=QgsCoordinateReferenceSystem()) const
Evaluates the parameter with matching name to a rectangular extent.
 
static QString typeName()
Returns the type name for the parameter class.
 
Represents a raster layer.
 
static QStringList parameterAsFileList(const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context)
Evaluates the parameter with matching definition to a list of files (for QgsProcessingParameterMultip...
 
QVariantMap runPrepared(const QVariantMap ¶meters, QgsProcessingContext &context, QgsProcessingFeedback *feedback) SIP_THROW(QgsProcessingException)
Runs the algorithm, which has been prepared by an earlier call to prepare().
 
static QgsCoordinateReferenceSystem parameterAsGeometryCrs(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, QgsProcessingContext &context)
Returns the coordinate reference system associated with a geometry parameter value.
 
static QgsPointCloudLayer * parameterAsPointCloudLayer(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, QgsProcessingContext &context)
Evaluates the parameter with matching definition to a point cloud layer.
 
virtual bool supportInPlaceEdit(const QgsMapLayer *layer) const
Checks whether this algorithm supports in-place editing on the given layer Default implementation ret...
 
virtual QgsProcessing::SourceType outputLayerType() const
Returns the layer type for layers generated by this algorithm, if this is possible to determine in ad...
 
This class represents a coordinate reference system (CRS).
 
QgsMapLayerStore * temporaryLayerStore()
Returns a reference to the layer store used for storing temporary layers during algorithm execution.
 
QgsProcessingParameterDefinitions destinationParameterDefinitions() const
Returns a list of destination parameters definitions utilized by the algorithm.
 
Single scope for storing variables and functions for use within a QgsExpressionContext....
 
virtual QString asQgisProcessCommand(const QVariantMap ¶meters, QgsProcessingContext &context, bool &ok) const
Returns a command string which will execute the algorithm using the specified parameters via the comm...
 
virtual QString outputName() const =0
Returns the translated, user visible name for any layers created by this algorithm.
 
virtual QgsFields outputFields(const QgsFields &inputFields) const
Maps the input source fields (inputFields) to corresponding output fields generated by the algorithm.
 
A class to represent a 2D point.
 
static QgsMeshLayer * parameterAsMeshLayer(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, QgsProcessingContext &context)
Evaluates the parameter with matching definition and value to a mesh layer.
 
virtual QString helpUrl() const
Returns a url pointing to the algorithm's help page.
 
@ FlagCanCancel
Algorithm can be canceled.
 
void setProvider(QgsProcessingProvider *provider)
Associates this algorithm with its provider.
 
virtual QWidget * createCustomParametersWidget(QWidget *parent=nullptr) const
If an algorithm subclass implements a custom parameters widget, a copy of this widget should be const...
 
QgsRasterLayer * parameterAsRasterLayer(const QVariantMap ¶meters, const QString &name, QgsProcessingContext &context) const
Evaluates the parameter with matching name to a raster layer.
 
Flag
Flags controlling how QgsProcessingFeatureSource fetches features.
 
bool parameterAsBool(const QVariantMap ¶meters, const QString &name, const QgsProcessingContext &context) const
Evaluates the parameter with matching name to a static boolean value.
 
Abstract base class for processing algorithms.
 
GeometryType
The geometry types are used to group QgsWkbTypes::Type in a coarse way.
 
QString parameterAsFileOutput(const QVariantMap ¶meters, const QString &name, QgsProcessingContext &context) const
Evaluates the parameter with matching name to a file based output destination.
 
int countVisibleParameters() const
Returns the number of visible (non-hidden) parameters defined by this algorithm.
 
bool nextFeature(QgsFeature &f)
 
virtual QIcon icon() const
Returns an icon for the algorithm.
 
As part of the API refactoring and improvements which landed in the Processing API was substantially reworked from the x version This was done in order to allow much of the underlying Processing framework to be ported into c
 
A geometry is the spatial representation of a feature.
 
virtual QString inputParameterName() const
Returns the name of the parameter corresponding to the input layer.
 
@ FlagHidden
Parameter is hidden and should not be shown to users.
 
Properties of a vector source or sink used in an algorithm.
 
QgsProcessingAlgorithm::VectorProperties sinkProperties(const QString &sink, const QVariantMap ¶meters, QgsProcessingContext &context, const QMap< QString, QgsProcessingAlgorithm::VectorProperties > &sourceProperties) const override
Returns the vector properties which will be used for the sink with matching name.
 
Represents a vector layer which manages a vector based data sets.
 
QgsPointXY parameterAsPoint(const QVariantMap ¶meters, const QString &name, QgsProcessingContext &context, const QgsCoordinateReferenceSystem &crs=QgsCoordinateReferenceSystem()) const
Evaluates the parameter with matching name to a point.
 
QgsProcessingAlgorithm * create(const QVariantMap &configuration=QVariantMap()) const SIP_THROW(QgsProcessingException)
Creates a copy of the algorithm, ready for execution.
 
virtual QVariantMap preprocessParameters(const QVariantMap ¶meters)
Pre-processes a set of parameters, allowing the algorithm to clean their values.
 
Base class for all map layer types. This is the base class for all map layer types (vector,...
 
virtual QVariantMap postProcessAlgorithm(QgsProcessingContext &context, QgsProcessingFeedback *feedback) SIP_THROW(QgsProcessingException)
Allows the algorithm to perform any required cleanup tasks.
 
static QString parameterAsOutputLayer(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, QgsProcessingContext &context)
Evaluates the parameter with matching definition to a output layer destination.
 
QgsWkbTypes::Type wkbType
Geometry (WKB) type.
 
static QString invalidSinkError(const QVariantMap ¶meters, const QString &name)
Returns a user-friendly string to use as an error when a sink parameter could not be created.
 
Represents a map layer containing a set of georeferenced annotations, e.g. markers,...
 
QgsExpressionContext & expressionContext()
Returns the expression context.
 
QgsFeatureSource subclass which proxies methods to an underlying QgsFeatureSource,...
 
QgsProcessingFeatureSource * parameterAsSource(const QVariantMap ¶meters, const QString &name, QgsProcessingContext &context) const
Evaluates the parameter with matching name to a feature source.
 
@ FlagRequiresMatchingCrs
Algorithm requires that all input layers have matching coordinate reference systems.
 
static QString parameterAsEnumString(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, const QgsProcessingContext &context)
Evaluates the parameter with matching definition to a static enum string.
 
virtual QgsExpressionContext createExpressionContext(const QVariantMap ¶meters, QgsProcessingContext &context, QgsProcessingFeatureSource *source=nullptr) const
Creates an expression context relating to the algorithm.
 
static QgsLayoutItem * parameterAsLayoutItem(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, QgsProcessingContext &context, QgsPrintLayout *layout)
Evaluates the parameter with matching definition to a print layout item, taken from the specified lay...
 
virtual Q_DECL_DEPRECATED QString helpString() const
Returns a localised help string for the algorithm.
 
static GeometryType geometryType(Type type) SIP_HOLDGIL
Returns the geometry type for a WKB type, e.g., both MultiPolygon and CurvePolygon would have a Polyg...
 
@ FlagSupportsBatch
Algorithm supports batch mode.
 
QVariantMap postProcess(QgsProcessingContext &context, QgsProcessingFeedback *feedback)
Should be called in the main thread following the completion of runPrepared().
 
virtual bool isDestination() const
Returns true if this parameter represents a file or layer destination, e.g.
 
QgsCoordinateReferenceSystem sourceCrs() const
Returns the source's coordinate reference system.
 
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
 
QVariant staticValue() const
Returns the current static value for the property.
 
static QString parameterAsFileOutput(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, QgsProcessingContext &context)
Evaluates the parameter with matching definition to a file based output destination.
 
static QIcon getThemeIcon(const QString &name, const QColor &fillColor=QColor(), const QColor &strokeColor=QColor())
Helper to get a theme icon.
 
QDateTime parameterAsDateTime(const QVariantMap ¶meters, const QString &name, QgsProcessingContext &context) const
Evaluates the parameter with matching name to a DateTime, or returns an invalid date time if the para...
 
static QString parameterAsExpression(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, const QgsProcessingContext &context)
Evaluates the parameter with matching definition to an expression.
 
static QgsFeatureSink * parameterAsSink(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, const QgsFields &fields, QgsWkbTypes::Type geometryType, const QgsCoordinateReferenceSystem &crs, QgsProcessingContext &context, QString &destinationIdentifier, QgsFeatureSink::SinkFlags sinkFlags=QgsFeatureSink::SinkFlags(), const QVariantMap &createOptions=QVariantMap(), const QStringList &datasourceOptions=QStringList(), const QStringList &layerOptions=QStringList())
Evaluates the parameter with matching definition to a feature sink.
 
static QColor parameterAsColor(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, QgsProcessingContext &context)
Returns the color associated with an point parameter value, or an invalid color if the parameter was ...
 
QgsProperty sink
Sink/layer definition.
 
virtual Flags flags() const
Returns the flags indicating how and when the algorithm operates and should be exposed to users.
 
QgsFeatureSink * parameterAsSink(const QVariantMap ¶meters, const QString &name, QgsProcessingContext &context, QString &destinationIdentifier, const QgsFields &fields, QgsWkbTypes::Type geometryType=QgsWkbTypes::NoGeometry, const QgsCoordinateReferenceSystem &crs=QgsCoordinateReferenceSystem(), QgsFeatureSink::SinkFlags sinkFlags=QgsFeatureSink::SinkFlags(), const QVariantMap &createOptions=QVariantMap(), const QStringList &datasourceOptions=QStringList(), const QStringList &layerOptions=QStringList()) const SIP_THROW(QgsProcessingException)
Evaluates the parameter with matching name to a feature sink.
 
QgsProcessingProvider * provider() const
Returns the provider to which this algorithm belongs.
 
@ StaticProperty
Static property (QgsStaticProperty)
 
static QString writeFeatureError(QgsFeatureSink *sink, const QVariantMap ¶meters, const QString &name)
Returns a user-friendly string to use as an error when a feature cannot be written into a sink.
 
QString name() const
Returns the name of the output.
 
Wrapper for iterator of features from vector data provider or vector layer.
 
int parameterAsInt(const QVariantMap ¶meters, const QString &name, const QgsProcessingContext &context) const
Evaluates the parameter with matching name to a static integer value.
 
Q_INVOKABLE QgsWkbTypes::GeometryType geometryType() const
Returns point, line or polygon.
 
static int parameterAsEnum(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, const QgsProcessingContext &context)
Evaluates the parameter with matching definition to a enum value.
 
QList< int > parameterAsEnums(const QVariantMap ¶meters, const QString &name, const QgsProcessingContext &context) const
Evaluates the parameter with matching name to list of enum values.
 
QVariantList parameterAsMatrix(const QVariantMap ¶meters, const QString &name, QgsProcessingContext &context) const
Evaluates the parameter with matching name to a matrix/table of values.
 
QString parameterAsCompatibleSourceLayerPathAndLayerName(const QVariantMap ¶meters, const QString &name, QgsProcessingContext &context, const QStringList &compatibleFormats, const QString &preferredFormat=QString("shp"), QgsProcessingFeedback *feedback=nullptr, QString *layerName=nullptr) const
Evaluates the parameter with matching name to a source vector layer file path and layer name of compa...
 
QgsMeshLayer * parameterAsMeshLayer(const QVariantMap ¶meters, const QString &name, QgsProcessingContext &context) const
Evaluates the parameter with matching name to a mesh layer.
 
SourceType
Data source types enum.
 
virtual bool supportsNonFileBasedOutput() const
Returns true if the provider supports non-file based outputs (such as memory layers or direct databas...
 
Custom exception class for processing related exceptions.
 
virtual QList< int > inputLayerTypes() const
Returns the valid input layer types for the source layer for this algorithm.
 
QgsCoordinateReferenceSystem parameterAsCrs(const QVariantMap ¶meters, const QString &name, QgsProcessingContext &context) const
Evaluates the parameter with matching name to a coordinate reference system.
 
QString parameterAsExpression(const QVariantMap ¶meters, const QString &name, const QgsProcessingContext &context) const
Evaluates the parameter with matching name to an expression.
 
An interface for objects which accept features via addFeature(s) methods.
 
static double parameterAsDouble(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, const QgsProcessingContext &context)
Evaluates the parameter with matching definition to a static double value.
 
virtual QgsFeatureRequest request() const
Returns the feature request used for fetching features to process from the source layer.
 
static int parameterAsInt(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, const QgsProcessingContext &context)
Evaluates the parameter with matching definition to a static integer value.
 
@ FlagSupportsInPlaceEdits
Algorithm supports in-place editing.
 
static QgsProcessingFeatureSource * parameterAsSource(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, QgsProcessingContext &context)
Evaluates the parameter with matching definition to a feature source.
 
static QString typeName()
Returns the type name for the parameter class.
 
const QgsProcessingParameterDefinition * parameterDefinition(const QString &name) const
Returns a matching parameter by name.
 
@ FastInsert
Use faster inserts, at the cost of updating the passed features to reflect changes made at the provid...
 
void setFeature(const QgsFeature &feature)
Convenience function for setting a feature for the context.
 
static bool parameterAsBool(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, const QgsProcessingContext &context)
Evaluates the parameter with matching definition to a static boolean value.
 
QgsProcessingAlgorithm::PropertyAvailability availability
Availability of the properties. By default properties are not available.
 
static QString parameterAsString(const QgsProcessingParameterDefinition *definition, const QVariantMap ¶meters, const QgsProcessingContext &context)
Evaluates the parameter with matching definition to a static string value.