|
# Erase Analysis Worker
|
|
|
|
Processes erase operations to remove features using another dataset.
|
|
|
|
## Overview
|
|
|
|
The erase analysis worker removes portions of features from an input dataset that overlap with features in an erase dataset.
|
|
|
|
## Job Type
|
|
|
|
`erase_analysis`
|
|
|
|
## Input Parameters
|
|
|
|
```json
|
|
{
|
|
"input_dataset_id": 123,
|
|
"erase_dataset_id": 124
|
|
}
|
|
```
|
|
|
|
### Parameters
|
|
|
|
- `input_dataset_id` (required): Input dataset ID
|
|
- `erase_dataset_id` (required): Erase dataset ID
|
|
|
|
## Output
|
|
|
|
Creates a new dataset with erased features:
|
|
|
|
- Features with erased portions removed
|
|
- Remaining geometry after erase operation
|
|
- Original attributes preserved
|
|
|
|
## Algorithm
|
|
|
|
The worker uses PostGIS `ST_Difference` to:
|
|
|
|
1. Find features that intersect the erase dataset
|
|
2. Calculate difference (input - erase)
|
|
3. Remove empty geometries
|
|
4. Store results in output table
|
|
|
|
## Example
|
|
|
|
```bash
|
|
# Enqueue an erase analysis job via API
|
|
curl -X POST "https://example.com/api/analysis_erase_run.php" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"input_dataset_id": 123,
|
|
"erase_dataset_id": 124
|
|
}'
|
|
```
|
|
|
|
## Background Jobs
|
|
|
|
This analysis runs as a background job. The worker:
|
|
|
|
1. Fetches queued `erase_analysis` jobs
|
|
2. Validates input parameters
|
|
3. Executes PostGIS erase operations
|
|
4. Creates output dataset
|
|
5. Marks job as completed
|
|
|
|
## Performance Considerations
|
|
|
|
- Processing time depends on dataset sizes and overlap
|
|
- Complex geometries may slow processing
|
|
- Spatial indexes improve intersection performance
|
|
- Consider simplifying geometries before erasing
|
|
|
|
## Related Documentation
|
|
|
|
- [Erase Analysis Tool](../analysis-tools/erase.md)
|
|
- [Analysis API](../api/analysis.md)
|
|
- [Workers Overview](index.md)
|
|
|