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:
zones_ratio (dict[TerritoryZone, float])
name (str)
Methods
__init__(zones_ratio, name)validate()Validate functional zone invariants.
Attributes
min_areaWeighted minimum area constraint for the functional zone.
nameFunctional zone name.
zones_ratioNormalized zone ratio mapping.