Skip to content

Transform operations

Transform applies deterministic operations. Geometry is always kept. Add transformation groups them:

  • Fields — Rename, Replace text, Compute column, Trim whitespace, Convert type
  • Rows — Filter rows
  • Geometry — Clip / Crop, Simplify, Buffer
  • Raster — Reproject, Resample (raster datasets)

Build them by hand, with Output Fields, from a Recipe, or — if enabled — by describing the change with AI. AI only authors the operations. Run does not call AI again.

The server catalog (GET /api/v1/transformations) is authoritative. Use catalog id values (rename_column, buffer, sql, python) as API identifiers, not display names.

A Transform step uses one of these mechanisms — not a mix:

Mechanism Catalog representation How you author it
Operations "representation": "operation" Add transformation, Recipe, or Workspace operations
SQL "representation": "sql" SQL Transform / Workspace sql
Python "representation": "python" Python / Workspace python

SQL is a sibling field (sql), not an operation type. Python is a sibling object (script, filename), not an operation type. Basic operations and SQL are mutually exclusive for one step.

Operations you cannot pick in the Add dialog still exist when a Recipe, AI, or Output Fields emits them (keep_columns, drop_column).

Operations you can add

Rename column

Purpose: Rename a field.

Required: From, To

Example: shape_len → border

Limits: To must be a valid identifier and must not already exist. Geometry cannot be renamed.

Replace text

Purpose: Find and replace inside a text field.

Required: Column, Find ( Replace may be empty to delete the find text)

Example: Rd. → Road in column name

Limits: The value is treated as text.

Trim whitespace

Purpose: Strip leading and trailing spaces.

Required: Column

Convert type

Purpose: Cast a field.

Required: Column, Target type (integer, float, or string)

Filter rows

Purpose: Keep rows that match a comparison.

Required (Simple): Column, Operator, Value (or Values for “is one of”)

Operators: =, !=, >, <, >=, <=, is one of, is not one of

Example: status = active

Expression mode: a condition such as population > 10000 AND status = 'active'. See Expression syntax.

Limits: No geometry column. Not a SQL query console.

Compute column

Purpose: Create a new field.

Required: Expression, Output column

Simple example: shape_area * 100 into area

Limits (Simple): Only + - * / ( ), numbers, and existing field names. Target name must not already exist.

Expression mode: comparisons, AND / OR, and a small function list. See Expression syntax.

Clip / Crop

Purpose: Keep only the part of each feature inside an area. Geometries that cross the edge are cut.

Required: A drawn rectangle or polygon, a bounding box (min_x, min_y, max_x, max_y), or a Polygon / MultiPolygon as WKT or GeoJSON.

Coordinates use the source CRS. GeoJibe does not assume EPSG:4326.

Raster clip supports a bounding box only.

Simplify

Purpose: Reduce geometry detail.

Required: Tolerance in source CRS units. Preserve topology defaults to on.

Buffer

Purpose: Create an area around each feature. Points and lines become polygons.

Required: Distance in source CRS units. Optional quadrant segments under Advanced options.

Metres are only accepted when the source CRS is known to use metres. Geographic layers (for example EPSG:4326) use degrees.

Raster operations

These apply to raster datasets. They are not previewable on the Canvas the way vector operations are. Convert applies them.

Reproject

Purpose: Change the raster CRS.

Required: Target CRS (target_crs), for example EPSG:4326.

Catalog id: reproject.

Resample

Purpose: Change raster resolution.

Optional: Method (nearest, bilinear, cubic; default nearest), resolution_x, resolution_y, keep_square.

Catalog id: resample.

SQL

Catalog id: sql. Representation: sql. Vector and tabular datasets only.

One SELECT against the source relation. Mutually exclusive with operations. See Transform with SQL.

{
  "layers": ["Reviews"],
  "sql": "SELECT * FROM source WHERE comment IS NOT NULL"
}

Python

Catalog id: python. Representation: python. Vector and raster.

The script runs in the isolated runtime as python3 script.py <input> <output> (no network). On a Workspace pipeline it is a sibling object, not an operation type:

{
  "python": {
    "script": "import shutil, sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
    "filename": "script.py"
  }
}

See Python scripts.

Output Fields (keep / drop)

Unchecked names are omitted. This is how you remove columns without an extra “Remove column” card.

Internally that is keep_columns / drop_column. You will not usually add those from the Add dialog.

Geometry is never listed and cannot be dropped.

Execution order

Operations run in list order, then Output Fields. A later step cannot use a field you already renamed or removed.

Recipes

A Recipe stores operations plus Output Fields. Apply it in Transform. Save as Recipe stores the current set. Recipes are not Jobs.

See also