weightedVoronoi

weightedVoronoi generates weighted spatial partitions that respect boundaries, landscape structure, and heterogeneous point influence using Euclidean or geodesic distance.

🌐 Website: https://HarriRaven.github.io/weightedVoronoi/

Key Features

  • Weighted Euclidean and geodesic tessellations inside arbitrary polygon domains

  • Flexible weight semantics via weight_model and weight_power

  • Custom resistance surfaces and barriers via compose_resistance() and add_barriers()

  • Terrain-informed geodesic allocation via DEM/Tobler resistance

  • Terrain-anisotropic geodesic tessellations

  • Scalable multisource geodesic allocation for additive isotropic geodesics

  • Uncertainty-aware tessellations with probability and entropy outputs

  • Temporal tessellation stacks with change and persistence

    Interactive demo

    Explore weighted Voronoi tessellations interactively:

    👉 https://harriraven.shinyapps.io/weightedVoronoi-demo/

  • Compare Euclidean vs geodesic allocation
  • Add resistance surfaces and terrain effects
  • Visualise how domain geometry constrains influence
  • Choosing a workflow

    weightedVoronoi supports several spatial tessellation approaches depending on your assumptions about distance, landscape structure, and analysis goals.

    Quick guide:

    Straight-line influence (fastest) → distance = "euclidean"

    Constrained by domain geometry (no crossing gaps/barriers) → distance = "geodesic"

    Landscape affects movement (e.g. terrain, land cover) → provide resistance_rast or dem_rast

    Uphill vs downhill matters (directional movement) → anisotropy = "terrain"

    Repeated runs (uncertainty or time series) → use prepare_geodesic_context() + geodesic_engine = "multisource"

    Uncertain weights → weighted_voronoi_uncertainty()

    Time series of tessellations → weighted_voronoi_time()

    For a more detailed guide, see the vignette.

    Installation