genplanner.FunctionalZone

class genplanner.FunctionalZone(zones_ratio, name)[source]

A composite zone describing a functional program of territorial zones.

FunctionalZone groups multiple TerritoryZone definitions with target area ratios. Ratios are validated and normalized to sum to 1.0.

The min_area of a functional zone is computed as the weighted sum of member zones’ min_area values (for TerritoryZone this corresponds to min_block_area), using the normalized ratios.

Parameters:
  • zones_ratio (dict[TerritoryZone, float]) – Mapping of TerritoryZone to a positive (unnormalized) target ratio.

  • name (str) – Non-empty functional zone name.

Raises:
  • ValueError – If name is empty, zones_ratio is empty, ratios are non-positive, or the ratio sum is invalid.

  • TypeError – If keys are not TerritoryZone or values are not finite numbers.

__init__(zones_ratio, name)[source]
Parameters:

Methods

__init__(zones_ratio, name)

validate()

Validate functional zone invariants.

Attributes

min_area

Weighted minimum area constraint for the functional zone.

name

Functional zone name.

zones_ratio

Normalized zone ratio mapping.