Skip to content

Temporal animation: progressive year/timestamp filter for static layers #147

@cboettig

Description

@cboettig

Feature request

Add support for animating a progressive temporal filter on PMTiles/vector layers — stepping through values in a time field (e.g. year, date) one-by-one rather than showing all features at once.

Motivation

Layers like the CAL FIRE wildfire perimeters span nearly 200 years of data (1835–2024). Currently the layer renders all fires simultaneously, which is visually overwhelming and makes it hard to understand the historical progression. A temporal scrubber or auto-playing animation would let users see how fire history has accumulated (or shifted) over time.

Proposed behavior

  • A layer opts in via an animation block (analogous to the existing trajectory animation type), e.g.:
{
    "id": "firep-pmtiles",
    "display_name": "CAL FIRE Wildfire Perimeters",
    "animation": {
        "type": "temporal_filter",
        "field": "YEAR_",
        "mode": "cumulative",
        "duration_seconds": 20
    }
}
  • field: the attribute to step through (integer year, ISO date string, Unix timestamp, etc.)
  • mode:
    • "cumulative" — show all features up to and including the current step (fires accumulate)
    • "step" — show only features matching the current step value
  • duration_seconds: total playback time across all steps
  • Playback controls (play/pause/scrub) appear in the layer panel or map UI, consistent with the existing trajectory animation controls

Example use cases

  • CAL FIRE wildfire perimeters: cumulative burn history stepping year by year (1835→2024)
  • Prescribed burn records stepping by year
  • Any timestamped polygon/point dataset where temporal progression matters

Related

The existing trajectory animation type (type: "trajectory") animates moving points along a path. This request is for the complementary case: static geometries filtered/revealed by time.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions