Skip to main content

GPS Data Filtering

info

These settings define the default filtering parameters for new GPS sources. They can be overridden on a per-source basis in the web interface.

Environment VariableDefaultDescription
GEOPULSE_GPS_FILTER_INACCURATE_DATA_ENABLEDfalseEnables GPS data filtering by default for new sources.
GEOPULSE_GPS_MAX_ALLOWED_ACCURACY100Default maximum allowed accuracy in meters. Points with higher accuracy values will be discarded.
GEOPULSE_GPS_MAX_ALLOWED_SPEED250Default maximum allowed speed in km/h. Points with higher speed values will be discarded.

Duplicate Detection

Duplicate detection can now be configured on a per-source basis. When enabled, it prevents storing GPS points with the same coordinates (within ~11 meters) within a configurable time window.

Configure duplicate detection settings directly in the web UI when adding or editing a GPS source:

  • Enable duplicate detection: Toggle to enable/disable for this specific source
  • Time threshold (minutes): Time window for duplicate detection. Leave empty to use global default.

Default Values for New Sources

Environment VariableDefaultDescription
GEOPULSE_GPS_DUPLICATE_DETECTION_ENABLEDfalseEnables duplicate detection by default for new sources.
GEOPULSE_GPS_DUPLICATE_DETECTION_THRESHOLD_MINUTES2Default time threshold for duplicate detection when creating new sources.

Legacy Global Setting (Deprecated)

warning

This setting is deprecated since version 1.14.0 but still supported for backward compatibility. It is used as a fallback when a source has duplicate detection enabled but no threshold configured (NULL).

Environment VariableDefaultDescription
GEOPULSE_GPS_DUPLICATE_DETECTION_LOCATION_TIME_THRESHOLD_MINUTES2Fallback time threshold for existing OwnTracks sources with NULL threshold. Set to 0 or negative to disable. This value is used when per-source threshold is not set (NULL).

Migration Notes

When upgrading to this version:

  • Existing OwnTracks sources: Automatically have duplicate detection enabled with threshold=NULL, so they continue using the global GEOPULSE_GPS_DUPLICATE_DETECTION_LOCATION_TIME_THRESHOLD_MINUTES value
  • Existing non-OwnTracks sources: Duplicate detection remains disabled (no behavior change)
  • New sources (all types): Duplicate detection is disabled by default

How it works:

  • When a new GPS point arrives, GeoPulse checks if any point with the same location (within ~11 meters) exists within ± threshold minutes
  • If a duplicate is found, the new point is skipped
  • This prevents devices from spamming the database with identical coordinates when stationary
  • Exact timestamp matching is always performed as a safety net, regardless of duplicate detection settings

Kubernetes / Helm Configuration

Configure in values.yaml:

config:
gps:
filterInaccurateData: true
maxAllowedAccuracy: 50 # More strict filtering
maxAllowedSpeed: 200

Apply with: helm upgrade geopulse ./helm/geopulse -f custom-values.yaml

For more details, see the Helm Configuration Guide.