Datalens.ai
← All algorithms

SPATIAL

HalfspaceIntersection

HalfspaceIntersection(halfspaces, interior_point, incremental=False, qhull_options=None).

Example of usage

Python API reference included; executable data demonstration pending review.

Usage / limitations

+Use when: Analyse spatial geometry.

−Limitations: Check input requirements, mathematical assumptions and version-specific behaviour before using.

Mathematical formula

See method documentation: implementation and assumptions vary.
Sample dataShow
{
  "variable": "site_locations",
  "domain": "Urban logistics and distribution-site planning",
  "feature_names": [
    "east_km",
    "north_km"
  ],
  "records": [
    {
      "site": "Depot A",
      "east_km": 0,
      "north_km": 0
    },
    {
      "site": "Depot B",
      "east_km": 2,
      "north_km": 0
    },
    {
      "site": "Depot C",
      "east_km": 0,
      "north_km": 2
    },
    {
      "site": "Depot D",
      "east_km": 2,
      "north_km": 2
    },
    {
      "site": "Depot E",
      "east_km": 1,
      "north_km": 1
    },
    {
      "site": "Depot F",
      "east_km": 3,
      "north_km": 1
    }
  ]
}

Code example (Python)

# DataLens.ai example — HalfspaceIntersection
# Domain: urban logistics and distribution-site planning.
# Sample input is provided by the Copy input + code + test button.
import numpy as np
from scipy import spatial
sites = np.array([[r["east_km"], r["north_km"]] for r in site_locations["records"]], dtype=float)

# Model a rectangular allowed-service region as linear inequalities.
# Each row means a*x + b*y + c <= 0.
halfspaces = np.array([[-1,0,0],[1,0,-2],[0,-1,0],[0,1,-2]],dtype=float)
region = spatial.HalfspaceIntersection(halfspaces, interior_point=np.array([1.,1.]))
assert region.intersections.shape == (4, 2)
assert np.all((region.intersections >= -1e-9) & (region.intersections <= 2+1e-9))

print("Expected output verified")