Dissolve Worker
Processes dissolve operations to merge features based on attribute values.
Overview
The dissolve worker merges adjacent or overlapping features that share the same attribute value, optionally aggregating numeric fields.
Job Type
dissolve
Input Parameters
{
"source_dataset_id": 123,
"output_dataset_id": 124,
"dissolve_mode": "field",
"dissolve_field": "category",
"aggregation_fields": {
"population": "sum",
"area": "sum"
}
}
Parameters
source_dataset_id(required): Source dataset IDoutput_dataset_id(required): Output dataset IDdissolve_mode(optional): “all”, “field”, or “custom” (default: “field”)dissolve_field(required if mode=”field”): Field to dissolve oncustom_field(required if mode=”custom”): Field for custom groupingcustom_groups(required if mode=”custom”): Array of group definitionsaggregation_fields(optional): Object mapping field names to aggregation functions (sum, avg, min, max, count)
Output
Creates a new dataset with dissolved features:
Merged geometries for each group
Aggregated attribute values
Group identifiers
Dissolve Modes
All Features
Merge all features into a single feature. No grouping field required.
By Field
Merge features that share the same value in the specified field.
Custom Groups
Merge features based on custom group definitions. Allows complex grouping logic.
Aggregation Functions
sum: Sum of numeric valuesavg: Average of numeric valuesmin: Minimum valuemax: Maximum valuecount: Count of features
Example
# Enqueue a dissolve job via API
curl -X POST "https://example.com/api/run_dissolve.php" \
-H "Content-Type: application/json" \
-d '{
"source_dataset_id": 123,
"output_dataset_id": 124,
"dissolve_mode": "field",
"dissolve_field": "category",
"aggregation_fields": {
"population": "sum",
"area": "sum"
}
}'
Background Jobs
This analysis runs as a background job. The worker:
Fetches queued
dissolvejobsValidates input parameters
Executes PostGIS dissolve queries
Applies aggregations
Creates output dataset
Marks job as completed
Performance Considerations
Processing time depends on dataset size and number of groups
Complex geometries may slow processing
Aggregation operations add processing time
Consider simplifying geometries before dissolving