mirror of
https://github.com/DOI-DO/j40-cejst-2.git
synced 2025-02-23 01:54:18 -08:00
Integrate proximity to waste sites into pollution factors (#959)
* add tsdf proximity into predicate to determine thresholds * strict inequality --> inclusive Co-authored-by: Saran Ahluwalia <sarahluw@cisco.com>
This commit is contained in:
parent
fdba1eb171
commit
8cb1070d1e
1 changed files with 32 additions and 29 deletions
|
@ -70,21 +70,21 @@ class ScoreL(Score):
|
||||||
field_names.EXPECTED_BUILDING_LOSS_RATE_FIELD_NAME
|
field_names.EXPECTED_BUILDING_LOSS_RATE_FIELD_NAME
|
||||||
+ field_names.PERCENTILE_FIELD_SUFFIX
|
+ field_names.PERCENTILE_FIELD_SUFFIX
|
||||||
]
|
]
|
||||||
> self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
>= self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
||||||
)
|
)
|
||||||
| (
|
| (
|
||||||
self.df[
|
self.df[
|
||||||
field_names.EXPECTED_AGRICULTURE_LOSS_RATE_FIELD_NAME
|
field_names.EXPECTED_AGRICULTURE_LOSS_RATE_FIELD_NAME
|
||||||
+ field_names.PERCENTILE_FIELD_SUFFIX
|
+ field_names.PERCENTILE_FIELD_SUFFIX
|
||||||
]
|
]
|
||||||
> self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
>= self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
||||||
)
|
)
|
||||||
| (
|
| (
|
||||||
self.df[
|
self.df[
|
||||||
field_names.EXPECTED_POPULATION_LOSS_RATE_FIELD_NAME
|
field_names.EXPECTED_POPULATION_LOSS_RATE_FIELD_NAME
|
||||||
+ field_names.PERCENTILE_FIELD_SUFFIX
|
+ field_names.PERCENTILE_FIELD_SUFFIX
|
||||||
]
|
]
|
||||||
> self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
>= self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -93,7 +93,7 @@ class ScoreL(Score):
|
||||||
field_names.POVERTY_LESS_THAN_200_FPL_FIELD
|
field_names.POVERTY_LESS_THAN_200_FPL_FIELD
|
||||||
+ field_names.PERCENTILE_FIELD_SUFFIX
|
+ field_names.PERCENTILE_FIELD_SUFFIX
|
||||||
]
|
]
|
||||||
> self.LOW_INCOME_THRESHOLD
|
>= self.LOW_INCOME_THRESHOLD
|
||||||
) & climate_criteria
|
) & climate_criteria
|
||||||
|
|
||||||
def _energy_factor(self) -> bool:
|
def _energy_factor(self) -> bool:
|
||||||
|
@ -107,12 +107,12 @@ class ScoreL(Score):
|
||||||
field_names.ENERGY_BURDEN_FIELD
|
field_names.ENERGY_BURDEN_FIELD
|
||||||
+ field_names.PERCENTILE_FIELD_SUFFIX
|
+ field_names.PERCENTILE_FIELD_SUFFIX
|
||||||
]
|
]
|
||||||
> self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
>= self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
||||||
) | (
|
) | (
|
||||||
self.df[
|
self.df[
|
||||||
field_names.PM25_FIELD + field_names.PERCENTILE_FIELD_SUFFIX
|
field_names.PM25_FIELD + field_names.PERCENTILE_FIELD_SUFFIX
|
||||||
]
|
]
|
||||||
> self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
>= self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
||||||
)
|
)
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -120,7 +120,7 @@ class ScoreL(Score):
|
||||||
field_names.POVERTY_LESS_THAN_200_FPL_FIELD
|
field_names.POVERTY_LESS_THAN_200_FPL_FIELD
|
||||||
+ field_names.PERCENTILE_FIELD_SUFFIX
|
+ field_names.PERCENTILE_FIELD_SUFFIX
|
||||||
]
|
]
|
||||||
> self.LOW_INCOME_THRESHOLD
|
>= self.LOW_INCOME_THRESHOLD
|
||||||
) & energy_criteria
|
) & energy_criteria
|
||||||
|
|
||||||
def _transportation_factor(self) -> bool:
|
def _transportation_factor(self) -> bool:
|
||||||
|
@ -137,12 +137,12 @@ class ScoreL(Score):
|
||||||
self.df[
|
self.df[
|
||||||
field_names.DIESEL_FIELD + field_names.PERCENTILE_FIELD_SUFFIX
|
field_names.DIESEL_FIELD + field_names.PERCENTILE_FIELD_SUFFIX
|
||||||
]
|
]
|
||||||
> self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
>= self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
||||||
) | (
|
) | (
|
||||||
self.df[
|
self.df[
|
||||||
field_names.TRAFFIC_FIELD + field_names.PERCENTILE_FIELD_SUFFIX
|
field_names.TRAFFIC_FIELD + field_names.PERCENTILE_FIELD_SUFFIX
|
||||||
]
|
]
|
||||||
> self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
>= self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
||||||
)
|
)
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -150,7 +150,7 @@ class ScoreL(Score):
|
||||||
field_names.POVERTY_LESS_THAN_200_FPL_FIELD
|
field_names.POVERTY_LESS_THAN_200_FPL_FIELD
|
||||||
+ field_names.PERCENTILE_FIELD_SUFFIX
|
+ field_names.PERCENTILE_FIELD_SUFFIX
|
||||||
]
|
]
|
||||||
> self.LOW_INCOME_THRESHOLD
|
>= self.LOW_INCOME_THRESHOLD
|
||||||
) & transportation_criteria
|
) & transportation_criteria
|
||||||
|
|
||||||
def _housing_factor(self) -> bool:
|
def _housing_factor(self) -> bool:
|
||||||
|
@ -172,28 +172,28 @@ class ScoreL(Score):
|
||||||
field_names.LEAD_PAINT_FIELD
|
field_names.LEAD_PAINT_FIELD
|
||||||
+ field_names.PERCENTILE_FIELD_SUFFIX
|
+ field_names.PERCENTILE_FIELD_SUFFIX
|
||||||
]
|
]
|
||||||
> self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
>= self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
||||||
)
|
)
|
||||||
& (
|
& (
|
||||||
self.df[
|
self.df[
|
||||||
field_names.MEDIAN_HOUSE_VALUE_FIELD
|
field_names.MEDIAN_HOUSE_VALUE_FIELD
|
||||||
+ field_names.PERCENTILE_FIELD_SUFFIX
|
+ field_names.PERCENTILE_FIELD_SUFFIX
|
||||||
]
|
]
|
||||||
< self.MEDIAN_HOUSE_VALUE_THRESHOLD
|
<= self.MEDIAN_HOUSE_VALUE_THRESHOLD
|
||||||
)
|
)
|
||||||
) | (
|
) | (
|
||||||
self.df[
|
self.df[
|
||||||
field_names.HOUSING_BURDEN_FIELD
|
field_names.HOUSING_BURDEN_FIELD
|
||||||
+ field_names.PERCENTILE_FIELD_SUFFIX
|
+ field_names.PERCENTILE_FIELD_SUFFIX
|
||||||
]
|
]
|
||||||
> self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
>= self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
||||||
)
|
)
|
||||||
return (
|
return (
|
||||||
self.df[
|
self.df[
|
||||||
field_names.POVERTY_LESS_THAN_200_FPL_FIELD
|
field_names.POVERTY_LESS_THAN_200_FPL_FIELD
|
||||||
+ field_names.PERCENTILE_FIELD_SUFFIX
|
+ field_names.PERCENTILE_FIELD_SUFFIX
|
||||||
]
|
]
|
||||||
> self.LOW_INCOME_THRESHOLD
|
>= self.LOW_INCOME_THRESHOLD
|
||||||
) & housing_criteria
|
) & housing_criteria
|
||||||
|
|
||||||
def _pollution_factor(self) -> bool:
|
def _pollution_factor(self) -> bool:
|
||||||
|
@ -205,10 +205,13 @@ class ScoreL(Score):
|
||||||
|
|
||||||
pollution_criteria = (
|
pollution_criteria = (
|
||||||
self.df[field_names.RMP_FIELD + field_names.PERCENTILE_FIELD_SUFFIX]
|
self.df[field_names.RMP_FIELD + field_names.PERCENTILE_FIELD_SUFFIX]
|
||||||
> self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
>= self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
||||||
) | (
|
) | (
|
||||||
self.df[field_names.NPL_FIELD + field_names.PERCENTILE_FIELD_SUFFIX]
|
self.df[field_names.NPL_FIELD + field_names.PERCENTILE_FIELD_SUFFIX]
|
||||||
> self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
>= self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
||||||
|
) | (
|
||||||
|
self.df[field_names.TSDF_FIELD + field_names.PERCENTILE_FIELD_SUFFIX]
|
||||||
|
>= self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
||||||
)
|
)
|
||||||
|
|
||||||
return pollution_criteria & (
|
return pollution_criteria & (
|
||||||
|
@ -216,7 +219,7 @@ class ScoreL(Score):
|
||||||
field_names.POVERTY_LESS_THAN_200_FPL_FIELD
|
field_names.POVERTY_LESS_THAN_200_FPL_FIELD
|
||||||
+ field_names.PERCENTILE_FIELD_SUFFIX
|
+ field_names.PERCENTILE_FIELD_SUFFIX
|
||||||
]
|
]
|
||||||
> self.LOW_INCOME_THRESHOLD
|
>= self.LOW_INCOME_THRESHOLD
|
||||||
)
|
)
|
||||||
|
|
||||||
def _water_factor(self) -> bool:
|
def _water_factor(self) -> bool:
|
||||||
|
@ -230,13 +233,13 @@ class ScoreL(Score):
|
||||||
field_names.POVERTY_LESS_THAN_200_FPL_FIELD
|
field_names.POVERTY_LESS_THAN_200_FPL_FIELD
|
||||||
+ field_names.PERCENTILE_FIELD_SUFFIX
|
+ field_names.PERCENTILE_FIELD_SUFFIX
|
||||||
]
|
]
|
||||||
> self.LOW_INCOME_THRESHOLD
|
>= self.LOW_INCOME_THRESHOLD
|
||||||
) & (
|
) & (
|
||||||
self.df[
|
self.df[
|
||||||
field_names.WASTEWATER_FIELD
|
field_names.WASTEWATER_FIELD
|
||||||
+ field_names.PERCENTILE_FIELD_SUFFIX
|
+ field_names.PERCENTILE_FIELD_SUFFIX
|
||||||
]
|
]
|
||||||
> self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
>= self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
||||||
)
|
)
|
||||||
|
|
||||||
def _health_factor(self) -> bool:
|
def _health_factor(self) -> bool:
|
||||||
|
@ -258,21 +261,21 @@ class ScoreL(Score):
|
||||||
field_names.DIABETES_FIELD
|
field_names.DIABETES_FIELD
|
||||||
+ field_names.PERCENTILE_FIELD_SUFFIX
|
+ field_names.PERCENTILE_FIELD_SUFFIX
|
||||||
]
|
]
|
||||||
> self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
>= self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
||||||
)
|
)
|
||||||
| (
|
| (
|
||||||
self.df[
|
self.df[
|
||||||
field_names.ASTHMA_FIELD
|
field_names.ASTHMA_FIELD
|
||||||
+ field_names.PERCENTILE_FIELD_SUFFIX
|
+ field_names.PERCENTILE_FIELD_SUFFIX
|
||||||
]
|
]
|
||||||
> self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
>= self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
||||||
)
|
)
|
||||||
| (
|
| (
|
||||||
self.df[
|
self.df[
|
||||||
field_names.HEART_DISEASE_FIELD
|
field_names.HEART_DISEASE_FIELD
|
||||||
+ field_names.PERCENTILE_FIELD_SUFFIX
|
+ field_names.PERCENTILE_FIELD_SUFFIX
|
||||||
]
|
]
|
||||||
> self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
>= self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
||||||
)
|
)
|
||||||
| (
|
| (
|
||||||
self.df[
|
self.df[
|
||||||
|
@ -281,7 +284,7 @@ class ScoreL(Score):
|
||||||
]
|
]
|
||||||
# Note: a high life expectancy is good, so take 1 minus the threshold to invert it,
|
# Note: a high life expectancy is good, so take 1 minus the threshold to invert it,
|
||||||
# and then look for life expenctancies lower than that (not greater than).
|
# and then look for life expenctancies lower than that (not greater than).
|
||||||
< 1 - self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
<= 1 - self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
return (
|
return (
|
||||||
|
@ -289,7 +292,7 @@ class ScoreL(Score):
|
||||||
field_names.POVERTY_LESS_THAN_200_FPL_FIELD
|
field_names.POVERTY_LESS_THAN_200_FPL_FIELD
|
||||||
+ field_names.PERCENTILE_FIELD_SUFFIX
|
+ field_names.PERCENTILE_FIELD_SUFFIX
|
||||||
]
|
]
|
||||||
> self.LOW_INCOME_THRESHOLD
|
>= self.LOW_INCOME_THRESHOLD
|
||||||
) & health_criteria
|
) & health_criteria
|
||||||
|
|
||||||
def _workforce_factor(self) -> bool:
|
def _workforce_factor(self) -> bool:
|
||||||
|
@ -309,7 +312,7 @@ class ScoreL(Score):
|
||||||
field_names.UNEMPLOYMENT_FIELD
|
field_names.UNEMPLOYMENT_FIELD
|
||||||
+ field_names.PERCENTILE_FIELD_SUFFIX
|
+ field_names.PERCENTILE_FIELD_SUFFIX
|
||||||
]
|
]
|
||||||
> self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
>= self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
||||||
)
|
)
|
||||||
| (
|
| (
|
||||||
self.df[
|
self.df[
|
||||||
|
@ -318,23 +321,23 @@ class ScoreL(Score):
|
||||||
]
|
]
|
||||||
# Note: a high median income as a % of AMI is good, so take 1 minus the threshold to invert it.
|
# Note: a high median income as a % of AMI is good, so take 1 minus the threshold to invert it.
|
||||||
# and then look for median income lower than that (not greater than).
|
# and then look for median income lower than that (not greater than).
|
||||||
< 1 - self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
<= 1 - self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
||||||
)
|
)
|
||||||
| (
|
| (
|
||||||
self.df[
|
self.df[
|
||||||
field_names.POVERTY_LESS_THAN_100_FPL_FIELD
|
field_names.POVERTY_LESS_THAN_100_FPL_FIELD
|
||||||
+ field_names.PERCENTILE_FIELD_SUFFIX
|
+ field_names.PERCENTILE_FIELD_SUFFIX
|
||||||
]
|
]
|
||||||
> self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
>= self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
||||||
)
|
)
|
||||||
| (
|
| (
|
||||||
self.df[
|
self.df[
|
||||||
field_names.LINGUISTIC_ISO_FIELD
|
field_names.LINGUISTIC_ISO_FIELD
|
||||||
+ field_names.PERCENTILE_FIELD_SUFFIX
|
+ field_names.PERCENTILE_FIELD_SUFFIX
|
||||||
]
|
]
|
||||||
> self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
>= self.ENVIRONMENTAL_BURDEN_THRESHOLD
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
return (
|
return (
|
||||||
self.df[field_names.HIGH_SCHOOL_ED_FIELD] > 0.10
|
self.df[field_names.HIGH_SCHOOL_ED_FIELD] >= 0.10
|
||||||
) & workforce_criteria
|
) & workforce_criteria
|
||||||
|
|
Loading…
Add table
Reference in a new issue