Enhancement API
The enhancement module provides functions for calculating biodiversity
units from habitat enhancement, including condition enhancement, distinctiveness
enhancement, and off-site scenarios.
Condition Enhancement (On-site)
For improving condition within the same habitat type.
- bngmetric.enhancement.get_enhancement_temporal_multiplier(habitat_id: int, start_condition_id: int, target_condition_id: int) float[source]
Retrieves the temporal multiplier for enhancement within the same distinctiveness band. Looks up time to target years from the 3D enhancement matrix, then converts to multiplier.
- bngmetric.enhancement.get_enhancement_difficulty_multiplier(habitat_id: int) float[source]
Retrieves the difficulty multiplier for enhancing a given habitat ID.
- bngmetric.enhancement.calculate_enhancement_bng_unit(habitat_id: int, start_condition_id: int, target_condition_id: int, area: float, strategic_multiplier: float) float[source]
Calculates the post-enhancement biodiversity units for a single habitat parcel. This represents the units after enhancement, not the uplift.
For same-distinctiveness enhancement (improving condition within same habitat type).
- bngmetric.enhancement.calculate_baseline_unit_for_enhancement(habitat_id: int, start_condition_id: int, area: float, strategic_multiplier: float) float[source]
Calculates the baseline biodiversity units for a parcel before enhancement. Used to compute the uplift from enhancement.
- bngmetric.enhancement.calculate_enhancement_uplift(habitat_id: int, start_condition_id: int, target_condition_id: int, area: float, strategic_multiplier: float) float[source]
Calculates the net biodiversity uplift from enhancement. Uplift = post-enhancement units - baseline units
- bngmetric.enhancement.calculate_batched_enhancement_bng_units(habitat_ids: Array, start_condition_ids: Array, target_condition_ids: Array, areas: Array, strategic_multipliers: Array) Array[source]
Vectorized version of calculate_batched_enhancement_bng_units. Takes similar arguments as calculate_batched_enhancement_bng_units but with additional array axes over which calculate_batched_enhancement_bng_units is mapped.
Original documentation:
Calculates post-enhancement biodiversity units for multiple habitat parcels in a batch. Inputs should be JAX arrays of the same length.
- bngmetric.enhancement.calculate_batched_enhancement_uplift(habitat_ids: Array, start_condition_ids: Array, target_condition_ids: Array, areas: Array, strategic_multipliers: Array) Array[source]
Vectorized version of calculate_batched_enhancement_uplift. Takes similar arguments as calculate_batched_enhancement_uplift but with additional array axes over which calculate_batched_enhancement_uplift is mapped.
Original documentation:
Calculates the net biodiversity uplift from enhancement for multiple parcels. Inputs should be JAX arrays of the same length.
- bngmetric.enhancement.calculate_enhancement_bng_from_dataframe(df: DataFrame) float[source]
Calculates total post-enhancement biodiversity units from a pandas DataFrame.
- Expected columns:
Habitat: habitat type string
Start_Condition: condition before enhancement
Target_Condition: condition after enhancement
Area: area in hectares
Strategic_Significance: strategic significance multiplier
- bngmetric.enhancement.calculate_enhancement_uplift_from_dataframe(df: DataFrame) float[source]
Calculates total net biodiversity uplift from enhancement from a pandas DataFrame.
- Expected columns:
Habitat: habitat type string
Start_Condition: condition before enhancement
Target_Condition: condition after enhancement
Area: area in hectares
Strategic_Significance: strategic significance multiplier
- bngmetric.enhancement.calculate_total_enhancement_units_from_jax_arrays(habitat_ids: Array, start_condition_ids: Array, target_condition_ids: Array, areas: Array, strategic_multipliers: Array) float[source]
Calculates the sum of post-enhancement biodiversity units from JAX arrays. This is the function to differentiate for sensitivity analysis.
- bngmetric.enhancement.calculate_total_enhancement_uplift_from_jax_arrays(habitat_ids: Array, start_condition_ids: Array, target_condition_ids: Array, areas: Array, strategic_multipliers: Array) float[source]
Calculates the sum of net biodiversity uplift from JAX arrays. This is the function to differentiate for sensitivity analysis on uplift.
Distinctiveness Enhancement
For enhancing to a higher distinctiveness habitat within the same broad type.
- bngmetric.enhancement.get_distinctiveness_enhancement_temporal_multiplier(target_habitat_id: int, target_condition_id: int) float[source]
Retrieves the temporal multiplier for distinctiveness enhancement.
This is used when enhancing from a lower distinctiveness habitat to a higher distinctiveness habitat (within the same broad habitat type).
The temporal lookup is based on the target habitat and target condition. The starting condition of the lower distinctiveness habitat is assumed to match the target condition.
- bngmetric.enhancement.calculate_distinctiveness_enhancement_bng_unit(baseline_habitat_id: int, baseline_condition_id: int, target_habitat_id: int, target_condition_id: int, area: float, strategic_multiplier: float) float[source]
Calculates the post-enhancement biodiversity units for distinctiveness enhancement.
This is for enhancing from a lower distinctiveness habitat to a higher distinctiveness habitat (within the same broad habitat type).
- Parameters:
baseline_habitat_id – ID of the original (lower distinctiveness) habitat
baseline_condition_id – Condition ID of the baseline habitat
target_habitat_id – ID of the target (higher distinctiveness) habitat
target_condition_id – Condition ID of the target habitat
area – Area in hectares
strategic_multiplier – Strategic significance multiplier
- bngmetric.enhancement.calculate_distinctiveness_enhancement_uplift(baseline_habitat_id: int, baseline_condition_id: int, target_habitat_id: int, target_condition_id: int, area: float, strategic_multiplier: float) float[source]
Calculates the net biodiversity uplift from distinctiveness enhancement.
Uplift = post-enhancement units - baseline units
- Parameters:
baseline_habitat_id – ID of the original (lower distinctiveness) habitat
baseline_condition_id – Condition ID of the baseline habitat
target_habitat_id – ID of the target (higher distinctiveness) habitat
target_condition_id – Condition ID of the target habitat
area – Area in hectares
strategic_multiplier – Strategic significance multiplier
- bngmetric.enhancement.calculate_batched_distinctiveness_enhancement_bng_units(baseline_habitat_ids: Array, baseline_condition_ids: Array, target_habitat_ids: Array, target_condition_ids: Array, areas: Array, strategic_multipliers: Array) Array[source]
Vectorized version of calculate_batched_distinctiveness_enhancement_bng_units. Takes similar arguments as calculate_batched_distinctiveness_enhancement_bng_units but with additional array axes over which calculate_batched_distinctiveness_enhancement_bng_units is mapped.
Original documentation:
Calculates post-enhancement biodiversity units for multiple distinctiveness enhancement parcels in a batch.
- bngmetric.enhancement.calculate_batched_distinctiveness_enhancement_uplift(baseline_habitat_ids: Array, baseline_condition_ids: Array, target_habitat_ids: Array, target_condition_ids: Array, areas: Array, strategic_multipliers: Array) Array[source]
Vectorized version of calculate_batched_distinctiveness_enhancement_uplift. Takes similar arguments as calculate_batched_distinctiveness_enhancement_uplift but with additional array axes over which calculate_batched_distinctiveness_enhancement_uplift is mapped.
Original documentation:
Calculates the net biodiversity uplift from distinctiveness enhancement for multiple parcels.
- bngmetric.enhancement.calculate_distinctiveness_enhancement_bng_from_dataframe(df: DataFrame) float[source]
Calculates total post-enhancement biodiversity units from distinctiveness enhancement using a pandas DataFrame.
- Expected columns:
Baseline_Habitat: baseline (lower distinctiveness) habitat type string
Baseline_Condition: condition of baseline habitat
Target_Habitat: target (higher distinctiveness) habitat type string
Target_Condition: condition of target habitat
Area: area in hectares
Strategic_Significance: strategic significance multiplier
- bngmetric.enhancement.calculate_distinctiveness_enhancement_uplift_from_dataframe(df: DataFrame) float[source]
Calculates total net biodiversity uplift from distinctiveness enhancement using a pandas DataFrame.
- Expected columns:
Baseline_Habitat: baseline (lower distinctiveness) habitat type string
Baseline_Condition: condition of baseline habitat
Target_Habitat: target (higher distinctiveness) habitat type string
Target_Condition: condition of target habitat
Area: area in hectares
Strategic_Significance: strategic significance multiplier
- bngmetric.enhancement.calculate_total_distinctiveness_enhancement_units_from_jax_arrays(baseline_habitat_ids: Array, baseline_condition_ids: Array, target_habitat_ids: Array, target_condition_ids: Array, areas: Array, strategic_multipliers: Array) float[source]
Calculates the sum of post-enhancement biodiversity units from JAX arrays for distinctiveness enhancement.
- bngmetric.enhancement.calculate_total_distinctiveness_enhancement_uplift_from_jax_arrays(baseline_habitat_ids: Array, baseline_condition_ids: Array, target_habitat_ids: Array, target_condition_ids: Array, areas: Array, strategic_multipliers: Array) float[source]
Calculates the sum of net biodiversity uplift from JAX arrays for distinctiveness enhancement.
Off-site Enhancement
For off-site enhancement with spatial risk multiplier.
- bngmetric.enhancement.get_spatial_risk_multiplier(spatial_risk_category_id: int) float[source]
Retrieves the spatial risk multiplier for off-site compensation.
- bngmetric.enhancement.calculate_offsite_enhancement_bng_unit(habitat_id: int, start_condition_id: int, target_condition_id: int, area: float, strategic_multiplier: float, spatial_risk_category_id: int) float[source]
Calculates the post-enhancement biodiversity units for a single off-site condition enhancement parcel. Includes spatial risk multiplier.
- bngmetric.enhancement.calculate_offsite_enhancement_uplift(habitat_id: int, start_condition_id: int, target_condition_id: int, area: float, strategic_multiplier: float, spatial_risk_category_id: int) float[source]
Calculates the net biodiversity uplift from off-site enhancement. Uplift = post-enhancement units - baseline units Note: Baseline units do NOT include spatial risk (they represent existing value).
- bngmetric.enhancement.calculate_batched_offsite_enhancement_bng_units(habitat_ids: Array, start_condition_ids: Array, target_condition_ids: Array, areas: Array, strategic_multipliers: Array, spatial_risk_category_ids: Array) Array[source]
Vectorized version of calculate_batched_offsite_enhancement_bng_units. Takes similar arguments as calculate_batched_offsite_enhancement_bng_units but with additional array axes over which calculate_batched_offsite_enhancement_bng_units is mapped.
Original documentation:
Calculates off-site enhancement biodiversity units for multiple parcels.
- bngmetric.enhancement.calculate_batched_offsite_enhancement_uplift(habitat_ids: Array, start_condition_ids: Array, target_condition_ids: Array, areas: Array, strategic_multipliers: Array, spatial_risk_category_ids: Array) Array[source]
Vectorized version of calculate_batched_offsite_enhancement_uplift. Takes similar arguments as calculate_batched_offsite_enhancement_uplift but with additional array axes over which calculate_batched_offsite_enhancement_uplift is mapped.
Original documentation:
Calculates off-site enhancement uplift for multiple parcels.
- bngmetric.enhancement.calculate_offsite_enhancement_bng_from_dataframe(df: DataFrame) float[source]
Calculates total off-site enhancement biodiversity units from a DataFrame.
- Expected columns:
Habitat: habitat type string
Start_Condition: condition before enhancement
Target_Condition: condition after enhancement
Area: area in hectares
Strategic_Significance: strategic significance multiplier
Spatial_Risk: spatial risk category string
- bngmetric.enhancement.calculate_offsite_enhancement_uplift_from_dataframe(df: DataFrame) float[source]
Calculates total off-site enhancement uplift from a DataFrame.
- Expected columns:
Habitat: habitat type string
Start_Condition: condition before enhancement
Target_Condition: condition after enhancement
Area: area in hectares
Strategic_Significance: strategic significance multiplier
Spatial_Risk: spatial risk category string
- bngmetric.enhancement.calculate_total_offsite_enhancement_units_from_jax_arrays(habitat_ids: Array, start_condition_ids: Array, target_condition_ids: Array, areas: Array, strategic_multipliers: Array, spatial_risk_category_ids: Array) float[source]
Calculates the sum of off-site enhancement biodiversity units from JAX arrays.
- bngmetric.enhancement.calculate_total_offsite_enhancement_uplift_from_jax_arrays(habitat_ids: Array, start_condition_ids: Array, target_condition_ids: Array, areas: Array, strategic_multipliers: Array, spatial_risk_category_ids: Array) float[source]
Calculates the sum of off-site enhancement uplift from JAX arrays.
DataFrame Column Requirements
Condition Enhancement
Habitat: Habitat type stringStart_Condition: Condition before enhancementTarget_Condition: Condition after enhancementArea: Area in hectaresStrategic_Significance: Strategic significance multiplier
Distinctiveness Enhancement
Baseline_Habitat: Original (lower distinctiveness) habitat typeBaseline_Condition: Condition of baseline habitatTarget_Habitat: Target (higher distinctiveness) habitat typeTarget_Condition: Condition of target habitatArea: Area in hectaresStrategic_Significance: Strategic significance multiplier
Off-site Enhancement
All condition enhancement columns plus:
Spatial_Risk: Spatial risk category string