qgis:advancedpythonfieldcalculator: >
  This algorithm adds a new attribute to a vector layer, with values resulting from applying an expression to each feature. The expression is defined as a Python function.

qgis:aggregate: >
  This algorithm take a vector or table layer and aggregate features based on a group by expression. Features for which group by expression return the same value are grouped together.

  It is possible to group all source features together using constant value in group by parameter, example: NULL.

  It is also possible to group features using multiple fields using Array function, example: Array("Field1", "Field2").

  Geometries (if present) are combined into one multipart geometry for each group.

  Output attributes are computed depending on each given aggregate definition.

qgis:barplot: >
  This algorithm creates a bar plot from a category and a layer field.

qgis:basicstatisticsforfields: >
  This algorithm generates basic statistics from the analysis of a values in a field in the attribute table of a vector layer. Numeric, date, time and string fields are supported.

  The statistics returned will depend on the field type.

  Statistics are generated as an HTML file.

qgis:boundary: >
  Returns the closure of the combinatorial boundary of the input geometries (ie the topological boundary of the geometry). For instance, a polygon geometry will have a boundary consisting of the linestrings for each ring in the polygon. Only valid for polygon or line layers.

qgis:boxplot: >
  This algorithm creates a box plot from a category and a layer field.

qgis:centroids: >
  This algorithm creates a new point layer, with points representing the centroid of the geometries in an input layer.

  The attributes associated to each point in the output layer are the same ones associated to the original features.

qgis:checkvalidity: >
  This algorithm performs a validity check on the geometries of a vector layer.

  The geometries are classified in three groups (valid, invalid and error), and a vector layer is generated with the features in each of these categories.

  By default the algorithm uses the strict OGC definition of polygon validity, where a polygon is marked as invalid if a self-intersecting ring causes an interior hole. If the "Ignore ring self intersections" option is checked, then this rule will be ignored and a more lenient validity check will be performed.

qgis:climbalongline: >
  This algorithm calculates the total climb and descent along line geometries.

  Input layers must have Z values present. If Z values are not available, the "Drape" (set Z value from raster) algorithm may be used to add Z values from a DEM layer.

  The output layer is a copy of the input layer with additional fields that contain the total climb, total descent, the minimum elevation and the maximum elevation for each line geometry. If the input layer contains fields with the same names as these added fields, they will be renamed (field names will be altered to "name_2", "name_3", etc, finding the first non-duplicate name).

qgis:clip: >
  This algorithm clips a vector layer using the polygons of an additional polygons layer. Only the parts of the features in the input layer that falls within the polygons of the clipping layer will be added to the resulting layer.

  The attributes of the features are not modified, although properties such as area or length of the features will be modified by the clipping operation. If such properties are stored as attributes, those attributes will have to be manually updated.

qgis:concavehull: >
  This algorithm computes the concave hull of the features in an input layer.

qgis:convertgeometrytype: >
  This algorithm generates a new layer based on an existing one, with a different type of geometry.

  Not all conversions are possible. For instance, a line layer can be converted to a point layer, but a point layer cannot be converted to a line layer.

  See the "Polygonize" or "Lines to polygons" algorithm for alternative options.

qgis:createpointslayerfromtable: >
  This algorithm creates points layer from a table with columns that contain coordinates fields. Besides X and Y coordinates you can also specify Z and M fields.

qgis:definecurrentprojection: >
  This algorithm sets an existing Shapefile's projection to the provided CRS. Contrary to the "Assign projection" algorithm, it will not output a new layer.

  The .prj and .qpj files associated with the Shapefile will be overwritten - or created if missing - to match the provided CRS.

qgis:delaunaytriangulation: >
  This algorithm creates a polygon layer with the delaunay triangulation corresponding to a points layer.

qgis:deletecolumn: >
  This algorithm takes a vector layer and generates a new one that has the exact same content but without the selected columns.

qgis:deleteholes: >
  This algorithm takes a polygon layer and removes holes in polygons. It creates a new vector layer in which polygons with holes have been replaced by polygons with only their external ring. Attributes are not modified.

  An optional minimum area parameter allows removing only holes which are smaller than a specified area threshold. Leaving this parameter as 0.0 results in all holes being removed.

qgis:densifygeometriesgivenaninterval: >
  This algorithm takes a polygon or line layer and generates a new one in which the geometries have a larger number of vertices than the original one. The geometries are densified by adding regularly placed extra nodes inside each segment so that the maximum distance between any two nodes does not exceed the specified distance.

  E.g. specifying a distance 3 would cause the segment [0 0] -> [10 0] to be converted to [0 0] -> [2.5 0] -> [5 0] -> [7.5 0] -> [10 0], since 3 extra nodes are required on the segment and spacing these at 2.5 increments allows them to be evenly spaced over the segment.

  If the geometries have z or m values present then these will be linearly interpolated at the added nodes.

  The distance is expressed in the same units used by the layer CRS.

qgis:dissolve: >
  This algorithm takes a polygon or line vector layer and combines their geometries into new geometries. One or more attributes can be specified to dissolve only geometries belonging to the same class (having the same value for the specified attributes), alternatively all geometries can be dissolved.

  If the geometries to be dissolved are spatially separated from each other the output will be multi geometries. In case the input is a polygon layer, common boundaries of adjacent polygons being dissolved will get erased.

qgis:distancematrix: >
  This algorithm creates a table containing a distance matrix, with distances between all the points in a points layer.

qgis:distancetonearesthublinetohub: >
  Given an origin and a destination layers, this algorithm computes the distance between origin features and their closest destination one. Distance calculations are based on the features center.

  The resulting layer contains lines linking each origin point with its nearest destination feature.

qgis:distancetonearesthubpoints: >
  Given an origin and a destination layers, this algorithm computes the distance between origin features and their closest destination one. Distance calculations are based on the features center.

  The resulting layer contains origin features center point with an additional field indicating the identifier of the nearest destination feature and the distance to it.

qgis:eliminateselectedpolygons: >
  This algorithm combines selected polygons of the input layer with certain adjacent polygons by erasing their common boundary. The adjacent polygon can be either the one with the largest or smallest area or the one sharing the largest common boundary with the polygon to be eliminated.
  Eliminate is normally used to get rid of sliver polygons, i.e. tiny polygons that are a result of polygon intersection processes where boundaries of the inputs are similar but not identical.

qgis:exportaddgeometrycolumns: >
  This algorithm computes geometric properties of the features in a vector layer. It generates a new vector layer with the same content as the input one, but with additional attributes in its attributes table, containing geometric measurements.

  Depending on the geometry type of the vector layer, the attributes added to the table will be different.

qgis:extractbyattribute: >
  This algorithm creates a new vector layer that only contains matching features from an input layer. The criteria for adding features to the resulting layer is defined based on the values of an attribute from the input layer.

qgis:extractbyexpression: >
  This algorithm creates a new vector layer that only contains matching features from an input layer. The criteria for adding features to the resulting layer is based on a QGIS expression.

  For more information about expressions see the <a href ="{qgisdocs}/user_manual/working_with_vector/expression.html">user manual</a>

qgis:fieldcalculator: >
  This algorithm computes a new vector layer with the same features of the input layer, but with an additional attribute. The values of this new attribute are computed from each feature using a mathematical formula, based on the properties and attributes of the feature.

qgis:findprojection: >
  This algorithm allows creation of a shortlist of possible candidate coordinate reference systems for a layer with an unknown projection.

  The expected area which the layer should reside in must be specified via the target area parameter.

  The algorithm operates by testing the layer's extent in every known reference system and listing any in which the bounds would fall near the target area if the layer was in this projection.

qgis:fixeddistancebuffer: >
  This algorithm computes a buffer area for all the features in an input layer, using a fixed distance.

  The segments parameter controls the number of line segments to use to approximate a quarter circle when creating rounded offsets.

  The end cap style parameter controls how line endings are handled in the buffer.

  The join style parameter specifies whether round, miter or beveled joins should be used when offsetting corners in a line.

  The miter limit parameter is only applicable for miter join styles, and controls the maximum distance from the offset curve to use when creating a mitered join.

qgis:frequencyanalysis: >
  This algorithm generates a table with frequency analysis of the values of a selected attribute from an input vector layer

qgis:generatepointspixelcentroidsalongline: >
  This algorithm generates a point vector layer from an input raster and line layer.
  The points correspond to the pixel centroids that intersect the line layer.

qgis:generatepointspixelcentroidsinsidepolygons: >
  This algorithm generates a point vector layer from an input raster and polygon layer.
  The points correspond to the pixel centroids that intersect the polygon layer.

qgis:hypsometriccurves: >
  This algorithm computes hypsometric curves  for an input Digital Elevation Model. Curves are produced as table files in an output folder specified by the user.

qgis:importintospatialite: >
  This algorithm imports a vector layer into a SpatiaLite database, creating a new table.

qgis:importintopostgis: >
  This algorithm imports a vector layer into a PostgreSQL database, creating a new table.

  Prior to this a connection between QGIS and the PostgreSQL database has to be created (for example with the DB Manager).

qgis:joinbylocationsummary: >
  This algorithm takes an input vector layer and creates a new vector layer that is an extended version of the input one, with additional attributes in its attribute table.

  The additional attributes and their values are taken from a second vector layer. A spatial criteria is applied to select the values from the second layer that are added to each feature from the first layer in the resulting one.

  The algorithm calculates a statistical summary for the values from matching features in the second layer (e.g. maximum value, mean value, etc).

qgis:keepnbiggestparts: >
  This algorithm takes a polygon layer and creates a new polygon layer in which multipart geometries have been removed, leaving only the n largest (in terms of area) parts.

qgis:knearestconcavehull: >
  This algorithm generates a concave hull polygon from a set of points. If the input layer is a line or polygon layer, it will use the nodes.

  The number of neighbours to consider determines the concaveness of the output polygon. A lower number will result in a concave hull that follows the points very closely, while a higher number will have a smoother shape. The minimum number of neighbour points to consider is 3. A value equal to or greater than the number of points will result in a convex hull.

  If a field is selected, the algorithm will group the features in the input layer using unique values in that field and generate individual polygons in the output layer for each group.

qgis:lineintersections: >
  This algorithm creates point features where the lines in the Intersect layer intersect the lines in the Input layer.

  An ID field is specified for each of the input layers. Each point in the resulting layer will have the ID's of both input layers, allowing to identify them.

  If no Input Unique and Intersect Unique ID fields are specified then the point features are given the values of the last field (i.e. the last field/column in the attribute table) of the intersecting lines.

qgis:linestopolygons: >
  This algorithm generates a polygon layer using as polygon rings the lines from an input line layer.

  The attribute table of the output layer is the same as the one from of the input line layer.

qgis:listuniquevalues: >
  This algorithm generates a report with information about the unique values found in a given attribute (or attributes) of a vector layer.

qgis:meanandstandarddeviationplot:
  This algorithm creates a box plot with mean and standard deviation values.

qgis:mergevectorlayers: >
  This algorithm combines multiple vector layers of the same geometry type into a single one.

  If attributes tables are different, the attribute table of the resulting layer will contain the attributes from all input layers. New attributes will be added for the original layer name and source.

  The layers will all be reprojected to match the coordinate reference system of the first input layer.

qgis:minimumboundinggeometry: >
  This algorithm creates geometries which enclose the features from an input layer.

  Numerous enclosing geometry types are supported, including bounding boxes (envelopes), oriented rectangles, circles and convex hulls.

  Optionally, the features can be grouped by a field. If set, this causes the output layer to contain one feature per grouped value with a minimal geometry covering just the features with matching values.

qgis:multiparttosingleparts: >
  This algorithm takes a vector layer with multipart geometries and generates a new one in which all geometries contain a single part. Features with multipart geometries are divided in as many different features as parts the geometry contain, and the same attributes are used for each of them.

qgis:numberofuniquevaluesinclasses: >
  This algorithm counts the different values that appear in a specified attributes for features of the same class.

  Classes are defined according to a given attribute. For all layers that share the same value of this attribute, the values of a second attribute are analyzed.

  The resulting layer contains the same features as the input layer, but with an additional attribute containing the count of unique values for that class.

qgis:minimalenclosingcircle: >
  This algorithm takes a vector layer and generate a new one with the minimum enclosing circle that covers all the input features.

  As an alternative, the output layer can contain not just a single circle, but one for each input feature, representing the minimum enclosing circle that covers each of them.

qgis:pointsdisplacement: >
  Offsets nearby point features by moving nearby points by a preset amount to minimize overlapping features.

qgis:pointstopath: >
  Converts a point layer to a line layer, by joining points in a defined order.

  Points can be grouped by a field to output individual line features per group.

qgis:polarplot: >
  This algorithm generates a polar plot based on the value of an input vector layer.

  Two fields must be entered as parameters: one that define the category (to group features) and another one with the variable to plot (this has to be a numeric one)

qgis:polygoncentroids: >
  This algorithm creates a new point layer, with points representing the centroid of polygons of an input layer.

  The attributes associated to each point in the output layer are the same ones associated to the original polygon.

  NOTE: This algorithm is deprecated and the generic "centroids" algorithm (which works for line and multi geometry layers) should be used instead.

qgis:polygonize:  >
  This algorithm takes a lines layer and creates a polygon layer, with polygons generated from the lines in the input layer.

qgis:polygonstolines: >
  This algorithm takes a polygon layer and creates a line layer, with lines representing the rings of the polygons in the input layer.

qgis:spatialiteexecutesql: >
  This algorithm performs a SQL database query on a SpatiaLite database.

qgis:postgisexecutesql: >
  This algorithm performs a SQL database query on a PostgreSQL database connected to QGIS.

qgis:postgisexecuteandloadsql: >
  This algorithm performs a SQL database query on a PostGIS database connected to QGIS and loads the query results as a new layer.

qgis:randomextractwithinsubsets: >
  This algorithm takes a vector layer and generates a new one that contains only a subset of the features in the input layer.

  The subset is defined randomly, using a percentage or count value to define the total number of features in the subset.

  The percentage/count value is not applied to the whole layer, but instead to each category. Categories are defined according to a given attribute, which is also specified as an input parameter for the algorithm.

qgis:randompointsalongline: >
  This algorithm creates a new point layer, with points placed in the lines of another layer.

  For each line in the input layer, a given number of points is added to the resulting layer. A minimum distance can be specified to avoid point being too close to each other.

qgis:randompointsinlayerbounds: >
  This algorithm creates a new point layer with a given number of random points, all of them within the extent of a given layer. A distance factor can be specified, to avoid points being too close to each other.

qgis:randompointsinsidepolygonsfixed: >
  This algorithm creates a new point layer with random points inside the polygons of a given layer. The number of points in each polygon can be defined as a fixed count or as a density value, and it will be the same for all polygons.

qgis:randompointsinsidepolygonsvariable: >
  This algorithm creates a new point layer with random points inside the polygons of a given layer. The number of points in each polygon can be defined as a fixed count or as a density value. The count/density value is taken from an attribute, so it can be different for each polygon in the input layer.

qgis:randomselection: >
  This algorithm takes a vector layer and selects a subset of its features. No new layer is generated by this algorithm.

  The subset is defined randomly, using a percentage or count value to define the total number of features in the subset.

qgis:randomselectionwithinsubsets: >
  This algorithm takes a vector layer and selects a subset of its features. No new layer is generated by this algorithm.

  The subset is defined randomly, using a percentage or count value to define the total number of features in the subset.

  The percentage/count value is not applied to the whole layer, but instead to each category. Categories are defined according to a given attribute, which is also specified as an input parameter for the algorithm.

qgis:rastercalculator: >
  This algorithm allows performing algebraic operations using raster layers.

  The resulting layer will have its values computed according to an expression. The expression can contain numerical values, operators and references to any of the layers in the current project. The following functions are also supported:

  - sin(), cos(), tan(), atan2(), ln(), log10()

  The extent, cell size, and output CRS can be defined by the user. If the extent is not specified, the minimum extent that covers selected reference layer(s) will be used. If the cell size is not specified, the minimum cell size of selected reference layer(s) will be used. If the output CRS is not specified, the CRS of the first reference layer will be used.

  The cell size is assumed to be the same in both X and Y axes.

  Layers are referred by their name as displayed in the layer list and the number of the band to use (based on 1), using the pattern 'layer_name@band number'. For instance, the first band from a layer named DEM will be referred as DEM@1.

  When using the calculator in the batch interface or from the console, the files to use have to be specified. The corresponding layers are referred using the base name of the file (without the full path). For instance, if using a layer at path/to/my/rasterfile.tif, the first band of that layer will be referred as rasterfile.tif@1.

qgis:rasterlayerhistogram: >
  This algorithm generates a histogram with the values of a raster layer.

  The raster layer must have a single band.

qgis:rastersampling: >
  This algorithm creates a new vector layer with the same attributes of the input layer and the raster values corresponding on the point location.

  If the raster layer has more than one band, all the band values are sampled.

qgis:refactorfields: >
  This algorithm allows editing the structure of the attributes table of a vector layer. Fields can be modified in their type and name, using a fields mapping.

  The original layer is not modified. A new layer is generated, which contains a modified attribute table, according to the provided fields mapping.

qgis:regularpoints: >
  This algorithm creates a point layer with a given number of regular points, all of them within a given extent.

qgis:relief: >
  This algorithm creates a shaded relief layer from digital elevation data.

qgis:removenullgeometries: >
  This algorithm removes any features which do not have a geometry from a vector layer. All other features will be copied unchanged.

qgis:reprojectlayer: >
  This algorithm reprojects a vector layer. It creates a new layer with the same features as the input one, but with geometries reprojected to a new CRS.

  Attributes are not modified by this algorithm.

qgis:scatter3dplot: >
  This algorithm creates a 3D scatter plot for a vector layer.

qgis:selectbyattribute: >
  This algorithm creates a selection in a vector layer. The criteria for selected features is defined based on the values of an attribute from the input layer.

qgis:selectbyexpression: >
  This algorithm creates a selection in a vector layer. The criteria for selecting features is based on a QGIS expression.

  For more information about expressions see the <a href ="{qgisdocs}/user_manual/working_with_vector/expression.html">user manual</a>

qgis:setstyleforrasterlayer: >
  This algorithm sets the style of a raster layer. The style must be defined in a QML file.

qgis:setstyleforvectorlayer: >
  This algorithm sets the style of a vector layer. The style must be defined in a QML file.

qgis:snapgeometries: >
  This algorithm snaps the geometries in a layer. Snapping can be done either to the geometries from another layer, or to geometries within the same layer.

  A tolerance is specified in layer units to control how close vertices need to be to the reference layer geometries before they are snapped.

  Snapping occurs to both nodes and edges. Depending on the snapping behavior, either nodes or edges will be preferred.

  Vertices will be inserted or removed as required to make the geometries match the reference geometries.

qgis:splitwithlines: >
  This algorithm splits the lines or polygons in one layer using the lines in another layer to define the breaking points. Intersection between geometries in both layers are considered as split points.

  Output will contain multi geometries for split features.

qgis:splitvectorlayer: >
  This algorithm takes a vector layer and an attribute and generates a set of vector layers in an output folder. Each of the layers created in that folder contains all features from the input layer with the same value for the specified attribute.

  The number of files generated is equal to the number of different values found for the specified attribute.

qgis:statisticsbycategories: >
  This algorithm calculates statistics of fields depending on a parent class.

qgis:texttofloat: >
  This algorithm modifies the type of a given attribute in a vector layer, converting a text attribute containing numeric strings into a numeric attribute.

qgis:tilesxyz: >
  This algorithm generates raster XYZ tiles of map canvas content.

  Tile images can be saved as individual images in directory structure, or as single file in MBTiles format.

  Tile size is fixed to 256x256.

qgis:topologicalcoloring: >
  This algorithm assigns a color index to polygon features in such a way that no adjacent polygons share the same color index, whilst minimizing the number of colors required.

  An optional minimum distance between features assigned the same color can be set to prevent nearby (but non-touching) features from being assigned equal colors.

  The algorithm allows choice of method to use when assigning colors. The default method attempts to assign colors so that the count of features assigned to each individual color index is balanced.

  The 'by assigned area' mode instead assigns colors so that the total area of features assigned to each color is balanced. This mode can be useful to help avoid large features resulting in one of the colors appearing more dominant on a colored map.

  The 'by distance between colors' mode will assign colors in order to maximize the distance between features of the same color. This mode helps to create a more uniform distribution of colors across a map.

  A minimum number of colors can be specified if desired. The color index is saved to a new attribute named color_id.

qgis:variabledistancebuffer: >
  This algorithm computes a buffer area for all the features in an input layer. The size of the buffer for a given feature is defined by an attribute, so it allows different features to have different buffer sizes.

qgis:vectorlayerhistogram: >
  This algorithm generates a histogram with the values of the attribute of a vector layer.

  The attribute to use for computing the histogram must be a numeric attribute.

qgis:vectorlayerscatterplot: >
  This algorithm creates a simple X - Y scatter plot for a vector layer.

qgis:voronoipolygons: >
  This algorithm takes a points layer and generates a polygon layer containing the voronoi polygons corresponding to those input points.
