Updating field names to match score M definitions (#1190)

When implementing definition M for the score, the variable names were not yet updated. For example:

This legacy field naming: 
```
UNEMPLOYMENT_LOW_HS_EDUCATION_FIELD = (
    f"Greater than or equal to the {PERCENTILE}th percentile for unemployment"
    " and has low HS education"
)
``` 

Should actually be renamed something like this:
```
UNEMPLOYMENT_LOW_HS_LOW_HIGHER_ED_FIELD = (
    f"Greater than or equal to the {PERCENTILE}th percentile for unemployment"
    " and has low HS education and low higher ed attendance"
)
``` 

This PR is for the backend updates for this -- keeping the old fields, and adding new, Score M specific fields as listed below: 
- [x] `field_names`: add new fields to capture low_higher_ed
- [x] `score_m`: replace old fields with new fields 
- [x] `DOWNLOADABLE_SCORE_COLUMNS`: replace old fields with new fields
- [x] `TILES_SCORE_COLUMNS`: replace old fields with new fields
This commit is contained in:
Emma Nechamkin 2022-02-01 18:54:43 -05:00 committed by GitHub
commit 49868401be
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 250 additions and 152 deletions

View file

@ -138,28 +138,28 @@ TILES_SCORE_COLUMNS = {
field_names.M_HEALTH: "M_HLTH", field_names.M_HEALTH: "M_HLTH",
field_names.SCORE_M_COMMUNITIES: "SM_C", field_names.SCORE_M_COMMUNITIES: "SM_C",
field_names.SCORE_M + field_names.PERCENTILE_FIELD_SUFFIX: "SM_PFS", field_names.SCORE_M + field_names.PERCENTILE_FIELD_SUFFIX: "SM_PFS",
field_names.EXPECTED_POPULATION_LOSS_RATE_LOW_INCOME_FIELD: "EPLRLI", field_names.EXPECTED_POPULATION_LOSS_RATE_LOW_INCOME_LOW_HIGHER_ED_FIELD: "EPLRLI",
field_names.EXPECTED_AGRICULTURE_LOSS_RATE_LOW_INCOME_FIELD: "EALRLI", field_names.EXPECTED_AGRICULTURE_LOSS_RATE_LOW_INCOME_LOW_HIGHER_ED_FIELD: "EALRLI",
field_names.EXPECTED_BUILDING_LOSS_RATE_LOW_INCOME_FIELD: "EBLRLI", field_names.EXPECTED_BUILDING_LOSS_RATE_LOW_INCOME_LOW_HIGHER_ED_FIELD: "EBLRLI",
field_names.PM25_EXPOSURE_LOW_INCOME_FIELD: "PM25LI", field_names.PM25_EXPOSURE_LOW_INCOME_LOW_HIGHER_ED_FIELD: "PM25LI",
field_names.ENERGY_BURDEN_LOW_INCOME_FIELD: "EBLI", field_names.ENERGY_BURDEN_LOW_INCOME_LOW_HIGHER_ED_FIELD: "EBLI",
field_names.DIESEL_PARTICULATE_MATTER_LOW_INCOME_FIELD: "DPMLI", field_names.DIESEL_PARTICULATE_MATTER_LOW_INCOME_LOW_HIGHER_ED_FIELD: "DPMLI",
field_names.TRAFFIC_PROXIMITY_LOW_INCOME_FIELD: "TPLI", field_names.TRAFFIC_PROXIMITY_LOW_INCOME_LOW_HIGHER_ED_FIELD: "TPLI",
field_names.LEAD_PAINT_MEDIAN_HOUSE_VALUE_LOW_INCOME_FIELD: "LPMHVLI", field_names.LEAD_PAINT_MEDIAN_HOUSE_VALUE_LOW_INCOME_LOW_HIGHER_ED_FIELD: "LPMHVLI",
field_names.HOUSING_BURDEN_LOW_INCOME_FIELD: "HBLI", field_names.HOUSING_BURDEN_LOW_INCOME_LOW_HIGHER_ED_FIELD: "HBLI",
field_names.RMP_LOW_INCOME_FIELD: "RMPLI", field_names.RMP_LOW_INCOME_LOW_HIGHER_ED_FIELD: "RMPLI",
field_names.SUPERFUND_LOW_INCOME_FIELD: "SFLI", field_names.SUPERFUND_LOW_INCOME_LOW_HIGHER_ED_FIELD: "SFLI",
field_names.HAZARDOUS_WASTE_LOW_INCOME_FIELD: "HWLI", field_names.HAZARDOUS_WASTE_LOW_INCOME_LOW_HIGHER_ED_FIELD: "HWLI",
field_names.WASTEWATER_DISCHARGE_LOW_INCOME_FIELD: "WDLI", field_names.WASTEWATER_DISCHARGE_LOW_INCOME_LOW_HIGHER_ED_FIELD: "WDLI",
field_names.DIABETES_LOW_INCOME_FIELD: "DLI", field_names.DIABETES_LOW_INCOME_LOW_HIGHER_ED_FIELD: "DLI",
field_names.ASTHMA_LOW_INCOME_FIELD: "ALI", field_names.ASTHMA_LOW_INCOME_LOW_HIGHER_ED_FIELD: "ALI",
field_names.HEART_DISEASE_LOW_INCOME_FIELD: "HDLI", field_names.HEART_DISEASE_LOW_INCOME_LOW_HIGHER_ED_FIELD: "HDLI",
field_names.LOW_LIFE_EXPECTANCY_LOW_INCOME_FIELD: "LLELI", field_names.LOW_LIFE_EXPECTANCY_LOW_INCOME_LOW_HIGHER_ED_FIELD: "LLELI",
field_names.LINGUISTIC_ISOLATION_LOW_HS_EDUCATION_FIELD: "LILHSE", field_names.LINGUISTIC_ISOLATION_LOW_HS_LOW_HIGHER_ED_FIELD: "LILHSE",
field_names.POVERTY_LOW_HS_EDUCATION_FIELD: "PLHSE", field_names.POVERTY_LOW_HS_LOW_HIGHER_ED_FIELD: "PLHSE",
field_names.LOW_MEDIAN_INCOME_LOW_HS_EDUCATION_FIELD: "LMILHSE", field_names.LOW_MEDIAN_INCOME_LOW_HS_LOW_HIGHER_ED_FIELD: "LMILHSE",
field_names.UNEMPLOYMENT_LOW_HS_EDUCATION_FIELD: "ULHSE", field_names.UNEMPLOYMENT_LOW_HS_LOW_HIGHER_ED_FIELD: "ULHSE",
field_names.LOW_HS_EDUCATION_LOW_COLLEGE_ATTENDANCE_FIELD: "LHE", field_names.LOW_HS_EDUCATION_LOW_HIGHER_ED_FIELD: "LHE",
field_names.FPL_200_AND_COLLEGE_ATTENDANCE_SERIES: "FPL200S", field_names.FPL_200_AND_COLLEGE_ATTENDANCE_SERIES: "FPL200S",
field_names.THRESHOLD_COUNT: "TC", field_names.THRESHOLD_COUNT: "TC",
field_names.ISLAND_AREAS_UNEMPLOYMENT_LOW_HS_EDUCATION_FIELD: "IAULHSE", field_names.ISLAND_AREAS_UNEMPLOYMENT_LOW_HS_EDUCATION_FIELD: "IAULHSE",
@ -199,7 +199,7 @@ TILES_SCORE_FLOAT_COLUMNS = [
field_names.TSDF_FIELD + field_names.PERCENTILE_FIELD_SUFFIX, field_names.TSDF_FIELD + field_names.PERCENTILE_FIELD_SUFFIX,
field_names.TRAFFIC_FIELD + field_names.PERCENTILE_FIELD_SUFFIX, field_names.TRAFFIC_FIELD + field_names.PERCENTILE_FIELD_SUFFIX,
field_names.UNEMPLOYMENT_FIELD + field_names.PERCENTILE_FIELD_SUFFIX, field_names.UNEMPLOYMENT_FIELD + field_names.PERCENTILE_FIELD_SUFFIX,
field_names.LOW_HS_EDUCATION_LOW_COLLEGE_ATTENDANCE_FIELD, field_names.LOW_HS_EDUCATION_LOW_HIGHER_ED_FIELD,
field_names.ISLAND_AREAS_LOW_HS_EDUCATION_FIELD, field_names.ISLAND_AREAS_LOW_HS_EDUCATION_FIELD,
field_names.WASTEWATER_FIELD + field_names.PERCENTILE_FIELD_SUFFIX, field_names.WASTEWATER_FIELD + field_names.PERCENTILE_FIELD_SUFFIX,
field_names.SCORE_M + field_names.PERCENTILE_FIELD_SUFFIX, field_names.SCORE_M + field_names.PERCENTILE_FIELD_SUFFIX,
@ -214,73 +214,73 @@ DOWNLOADABLE_SCORE_COLUMNS = [
field_names.SCORE_M_COMMUNITIES, field_names.SCORE_M_COMMUNITIES,
field_names.TOTAL_POP_FIELD, field_names.TOTAL_POP_FIELD,
field_names.FPL_200_AND_COLLEGE_ATTENDANCE_SERIES, field_names.FPL_200_AND_COLLEGE_ATTENDANCE_SERIES,
field_names.EXPECTED_AGRICULTURE_LOSS_RATE_LOW_INCOME_FIELD, field_names.EXPECTED_AGRICULTURE_LOSS_RATE_LOW_INCOME_LOW_HIGHER_ED_FIELD,
field_names.EXPECTED_AGRICULTURE_LOSS_RATE_FIELD field_names.EXPECTED_AGRICULTURE_LOSS_RATE_FIELD
+ field_names.PERCENTILE_FIELD_SUFFIX, + field_names.PERCENTILE_FIELD_SUFFIX,
field_names.EXPECTED_AGRICULTURE_LOSS_RATE_FIELD, field_names.EXPECTED_AGRICULTURE_LOSS_RATE_FIELD,
field_names.EXPECTED_BUILDING_LOSS_RATE_LOW_INCOME_FIELD, field_names.EXPECTED_BUILDING_LOSS_RATE_LOW_INCOME_LOW_HIGHER_ED_FIELD,
field_names.EXPECTED_BUILDING_LOSS_RATE_FIELD field_names.EXPECTED_BUILDING_LOSS_RATE_FIELD
+ field_names.PERCENTILE_FIELD_SUFFIX, + field_names.PERCENTILE_FIELD_SUFFIX,
field_names.EXPECTED_BUILDING_LOSS_RATE_FIELD, field_names.EXPECTED_BUILDING_LOSS_RATE_FIELD,
field_names.EXPECTED_POPULATION_LOSS_RATE_LOW_INCOME_FIELD, field_names.EXPECTED_POPULATION_LOSS_RATE_LOW_INCOME_LOW_HIGHER_ED_FIELD,
field_names.EXPECTED_POPULATION_LOSS_RATE_FIELD field_names.EXPECTED_POPULATION_LOSS_RATE_FIELD
+ field_names.PERCENTILE_FIELD_SUFFIX, + field_names.PERCENTILE_FIELD_SUFFIX,
field_names.EXPECTED_POPULATION_LOSS_RATE_FIELD, field_names.EXPECTED_POPULATION_LOSS_RATE_FIELD,
field_names.ENERGY_BURDEN_LOW_INCOME_FIELD, field_names.ENERGY_BURDEN_LOW_INCOME_LOW_HIGHER_ED_FIELD,
field_names.ENERGY_BURDEN_FIELD + field_names.PERCENTILE_FIELD_SUFFIX, field_names.ENERGY_BURDEN_FIELD + field_names.PERCENTILE_FIELD_SUFFIX,
field_names.ENERGY_BURDEN_FIELD, field_names.ENERGY_BURDEN_FIELD,
field_names.PM25_EXPOSURE_LOW_INCOME_FIELD, field_names.PM25_EXPOSURE_LOW_INCOME_LOW_HIGHER_ED_FIELD,
field_names.PM25_FIELD + field_names.PERCENTILE_FIELD_SUFFIX, field_names.PM25_FIELD + field_names.PERCENTILE_FIELD_SUFFIX,
field_names.PM25_FIELD, field_names.PM25_FIELD,
field_names.DIESEL_PARTICULATE_MATTER_LOW_INCOME_FIELD, field_names.DIESEL_PARTICULATE_MATTER_LOW_INCOME_LOW_HIGHER_ED_FIELD,
field_names.DIESEL_FIELD + field_names.PERCENTILE_FIELD_SUFFIX, field_names.DIESEL_FIELD + field_names.PERCENTILE_FIELD_SUFFIX,
field_names.DIESEL_FIELD, field_names.DIESEL_FIELD,
field_names.TRAFFIC_PROXIMITY_LOW_INCOME_FIELD, field_names.TRAFFIC_PROXIMITY_LOW_INCOME_LOW_HIGHER_ED_FIELD,
field_names.TRAFFIC_FIELD + field_names.PERCENTILE_FIELD_SUFFIX, field_names.TRAFFIC_FIELD + field_names.PERCENTILE_FIELD_SUFFIX,
field_names.TRAFFIC_FIELD, field_names.TRAFFIC_FIELD,
field_names.HOUSING_BURDEN_LOW_INCOME_FIELD, field_names.HOUSING_BURDEN_LOW_INCOME_LOW_HIGHER_ED_FIELD,
field_names.HOUSING_BURDEN_FIELD + field_names.PERCENTILE_FIELD_SUFFIX, field_names.HOUSING_BURDEN_FIELD + field_names.PERCENTILE_FIELD_SUFFIX,
field_names.HOUSING_BURDEN_FIELD, field_names.HOUSING_BURDEN_FIELD,
field_names.LEAD_PAINT_MEDIAN_HOUSE_VALUE_LOW_INCOME_FIELD, field_names.LEAD_PAINT_MEDIAN_HOUSE_VALUE_LOW_INCOME_LOW_HIGHER_ED_FIELD,
field_names.LEAD_PAINT_FIELD + field_names.PERCENTILE_FIELD_SUFFIX, field_names.LEAD_PAINT_FIELD + field_names.PERCENTILE_FIELD_SUFFIX,
field_names.LEAD_PAINT_FIELD, field_names.LEAD_PAINT_FIELD,
field_names.MEDIAN_HOUSE_VALUE_FIELD + field_names.PERCENTILE_FIELD_SUFFIX, field_names.MEDIAN_HOUSE_VALUE_FIELD + field_names.PERCENTILE_FIELD_SUFFIX,
field_names.MEDIAN_HOUSE_VALUE_FIELD, field_names.MEDIAN_HOUSE_VALUE_FIELD,
field_names.HAZARDOUS_WASTE_LOW_INCOME_FIELD, field_names.HAZARDOUS_WASTE_LOW_INCOME_LOW_HIGHER_ED_FIELD,
field_names.TSDF_FIELD + field_names.PERCENTILE_FIELD_SUFFIX, field_names.TSDF_FIELD + field_names.PERCENTILE_FIELD_SUFFIX,
field_names.TSDF_FIELD, field_names.TSDF_FIELD,
field_names.SUPERFUND_LOW_INCOME_FIELD, field_names.SUPERFUND_LOW_INCOME_LOW_HIGHER_ED_FIELD,
field_names.NPL_FIELD + field_names.PERCENTILE_FIELD_SUFFIX, field_names.NPL_FIELD + field_names.PERCENTILE_FIELD_SUFFIX,
field_names.NPL_FIELD, field_names.NPL_FIELD,
field_names.RMP_LOW_INCOME_FIELD, field_names.RMP_LOW_INCOME_LOW_HIGHER_ED_FIELD,
field_names.RMP_FIELD + field_names.PERCENTILE_FIELD_SUFFIX, field_names.RMP_FIELD + field_names.PERCENTILE_FIELD_SUFFIX,
field_names.RMP_FIELD, field_names.RMP_FIELD,
field_names.WASTEWATER_DISCHARGE_LOW_INCOME_FIELD, field_names.WASTEWATER_DISCHARGE_LOW_INCOME_LOW_HIGHER_ED_FIELD,
field_names.WASTEWATER_FIELD + field_names.PERCENTILE_FIELD_SUFFIX, field_names.WASTEWATER_FIELD + field_names.PERCENTILE_FIELD_SUFFIX,
field_names.WASTEWATER_FIELD, field_names.WASTEWATER_FIELD,
field_names.ASTHMA_LOW_INCOME_FIELD, field_names.ASTHMA_LOW_INCOME_LOW_HIGHER_ED_FIELD,
field_names.ASTHMA_FIELD + field_names.PERCENTILE_FIELD_SUFFIX, field_names.ASTHMA_FIELD + field_names.PERCENTILE_FIELD_SUFFIX,
field_names.ASTHMA_FIELD, field_names.ASTHMA_FIELD,
field_names.DIABETES_LOW_INCOME_FIELD, field_names.DIABETES_LOW_INCOME_LOW_HIGHER_ED_FIELD,
field_names.DIABETES_FIELD + field_names.PERCENTILE_FIELD_SUFFIX, field_names.DIABETES_FIELD + field_names.PERCENTILE_FIELD_SUFFIX,
field_names.DIABETES_FIELD, field_names.DIABETES_FIELD,
field_names.HEART_DISEASE_LOW_INCOME_FIELD, field_names.HEART_DISEASE_LOW_INCOME_LOW_HIGHER_ED_FIELD,
field_names.HEART_DISEASE_FIELD + field_names.PERCENTILE_FIELD_SUFFIX, field_names.HEART_DISEASE_FIELD + field_names.PERCENTILE_FIELD_SUFFIX,
field_names.HEART_DISEASE_FIELD, field_names.HEART_DISEASE_FIELD,
field_names.LOW_LIFE_EXPECTANCY_LOW_INCOME_FIELD, field_names.LOW_LIFE_EXPECTANCY_LOW_INCOME_LOW_HIGHER_ED_FIELD,
field_names.LOW_LIFE_EXPECTANCY_FIELD + field_names.PERCENTILE_FIELD_SUFFIX, field_names.LOW_LIFE_EXPECTANCY_FIELD + field_names.PERCENTILE_FIELD_SUFFIX,
field_names.LIFE_EXPECTANCY_FIELD, field_names.LIFE_EXPECTANCY_FIELD,
field_names.LOW_MEDIAN_INCOME_LOW_HS_EDUCATION_FIELD, field_names.LOW_MEDIAN_INCOME_LOW_HS_LOW_HIGHER_ED_FIELD,
field_names.LOW_MEDIAN_INCOME_AS_PERCENT_OF_AMI_FIELD field_names.LOW_MEDIAN_INCOME_AS_PERCENT_OF_AMI_FIELD
+ field_names.PERCENTILE_FIELD_SUFFIX, + field_names.PERCENTILE_FIELD_SUFFIX,
field_names.MEDIAN_INCOME_AS_PERCENT_OF_AMI_FIELD, field_names.MEDIAN_INCOME_AS_PERCENT_OF_AMI_FIELD,
field_names.LINGUISTIC_ISOLATION_LOW_HS_EDUCATION_FIELD, field_names.LINGUISTIC_ISOLATION_LOW_HS_LOW_HIGHER_ED_FIELD,
field_names.LINGUISTIC_ISO_FIELD + field_names.PERCENTILE_FIELD_SUFFIX, field_names.LINGUISTIC_ISO_FIELD + field_names.PERCENTILE_FIELD_SUFFIX,
field_names.LINGUISTIC_ISO_FIELD, field_names.LINGUISTIC_ISO_FIELD,
field_names.UNEMPLOYMENT_LOW_HS_EDUCATION_FIELD, field_names.UNEMPLOYMENT_LOW_HS_LOW_HIGHER_ED_FIELD,
field_names.UNEMPLOYMENT_FIELD + field_names.PERCENTILE_FIELD_SUFFIX, field_names.UNEMPLOYMENT_FIELD + field_names.PERCENTILE_FIELD_SUFFIX,
field_names.UNEMPLOYMENT_FIELD, field_names.UNEMPLOYMENT_FIELD,
field_names.POVERTY_LOW_HS_EDUCATION_FIELD, field_names.POVERTY_LOW_HS_LOW_HIGHER_ED_FIELD,
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,
field_names.POVERTY_LESS_THAN_100_FPL_FIELD field_names.POVERTY_LESS_THAN_100_FPL_FIELD

File diff suppressed because one or more lines are too long

View file

@ -313,8 +313,7 @@ TRANSPORTATION_COSTS = "Transportation Costs"
##### #####
# Names for individual factors being exceeded # Names for individual factors being exceeded
# TODO: for Definition M, create new output field names (different than those used by
# Definition L) and change all output fields to say low income and low college
# Climate Change # Climate Change
EXPECTED_POPULATION_LOSS_RATE_LOW_INCOME_FIELD = ( EXPECTED_POPULATION_LOSS_RATE_LOW_INCOME_FIELD = (
f"Greater than or equal to the {PERCENTILE}th percentile" f"Greater than or equal to the {PERCENTILE}th percentile"
@ -369,50 +368,156 @@ LOW_LIFE_EXPECTANCY_LOW_INCOME_FIELD = (
f"for low life expectancy and is low income?" f"for low life expectancy and is low income?"
) )
# Score M Low Income Change
SCORE_M_LOW_INCOME_SUFFIX = (
", is low income, and has a low percent of higher ed students"
)
# Climate Change
EXPECTED_POPULATION_LOSS_RATE_LOW_INCOME_LOW_HIGHER_ED_FIELD = (
f"Greater than or equal to the {PERCENTILE}th percentile"
f" for expected population loss rate{SCORE_M_LOW_INCOME_SUFFIX}?"
)
EXPECTED_AGRICULTURE_LOSS_RATE_LOW_INCOME_LOW_HIGHER_ED_FIELD = (
f"Greater than or equal to the {PERCENTILE}th percentile"
f" for expected agriculture loss rate{SCORE_M_LOW_INCOME_SUFFIX}?"
)
EXPECTED_BUILDING_LOSS_RATE_LOW_INCOME_LOW_HIGHER_ED_FIELD = (
f"Greater than or equal to the {PERCENTILE}th percentile"
f" for expected building loss rate{SCORE_M_LOW_INCOME_SUFFIX}?"
)
# Clean Energy and Efficiency
PM25_EXPOSURE_LOW_INCOME_LOW_HIGHER_ED_FIELD = (
f"Greater than or equal to the {PERCENTILE}th percentile "
f"for PM2.5 exposure{SCORE_M_LOW_INCOME_SUFFIX}?"
)
ENERGY_BURDEN_LOW_INCOME_LOW_HIGHER_ED_FIELD = (
f"Greater than or equal to the {PERCENTILE}th percentile "
f"for energy burden{SCORE_M_LOW_INCOME_SUFFIX}?"
)
# Clean Transportation
DIESEL_PARTICULATE_MATTER_LOW_INCOME_LOW_HIGHER_ED_FIELD = (
f"Greater than or equal to the {PERCENTILE}th percentile for "
f"diesel particulate matter{SCORE_M_LOW_INCOME_SUFFIX}?"
)
TRAFFIC_PROXIMITY_LOW_INCOME_LOW_HIGHER_ED_FIELD = (
f"Greater than or equal to the {PERCENTILE}th percentile for "
f"traffic proximity{SCORE_M_LOW_INCOME_SUFFIX}?"
)
# Affordable and Sustainable Housing
LEAD_PAINT_MEDIAN_HOUSE_VALUE_LOW_INCOME_LOW_HIGHER_ED_FIELD = (
f"Greater than or equal to the {PERCENTILE}th percentile for lead paint,"
f" the median house value is less than {MEDIAN_HOUSE_VALUE_PERCENTILE}th "
f"percentile{SCORE_M_LOW_INCOME_SUFFIX}?"
)
HOUSING_BURDEN_LOW_INCOME_LOW_HIGHER_ED_FIELD = (
f"Greater than or equal to the {PERCENTILE}th percentile "
f"for housing burden{SCORE_M_LOW_INCOME_SUFFIX}?"
)
# Remediation and Reduction of Legacy Pollution
RMP_LOW_INCOME_LOW_HIGHER_ED_FIELD = (
f"Greater than or equal to the {PERCENTILE}th percentile for "
f"proximity to RMP sites{SCORE_M_LOW_INCOME_SUFFIX}?"
)
SUPERFUND_LOW_INCOME_LOW_HIGHER_ED_FIELD = (
f"Greater than or equal to the {PERCENTILE}th percentile for proximity to "
f"superfund sites{SCORE_M_LOW_INCOME_SUFFIX}?"
)
HAZARDOUS_WASTE_LOW_INCOME_LOW_HIGHER_ED_FIELD = (
f"Greater than or equal to the {PERCENTILE}th percentile"
f" for proximity to hazardous waste facilities{SCORE_M_LOW_INCOME_SUFFIX}?"
)
# Critical Clean Water and Waste Infrastructure
WASTEWATER_DISCHARGE_LOW_INCOME_LOW_HIGHER_ED_FIELD = (
f"Greater than or equal to the {PERCENTILE}th percentile for"
f" wastewater discharge{SCORE_M_LOW_INCOME_SUFFIX}?"
)
# Health Burdens
DIABETES_LOW_INCOME_LOW_HIGHER_ED_FIELD = f"Greater than or equal to the {PERCENTILE}th percentile for diabetes{SCORE_M_LOW_INCOME_SUFFIX}?"
ASTHMA_LOW_INCOME_LOW_HIGHER_ED_FIELD = f"Greater than or equal to the {PERCENTILE}th percentile for asthma{SCORE_M_LOW_INCOME_SUFFIX}?"
HEART_DISEASE_LOW_INCOME_LOW_HIGHER_ED_FIELD = (
f"Greater than or equal to the {PERCENTILE}th percentile "
f"for heart disease{SCORE_M_LOW_INCOME_SUFFIX}?"
)
LOW_LIFE_EXPECTANCY_LOW_INCOME_LOW_HIGHER_ED_FIELD = (
f"Greater than or equal to the {PERCENTILE}th percentile "
f"for low life expectancy{SCORE_M_LOW_INCOME_SUFFIX}?"
)
# Workforce # Workforce
# TODO: for Definition M, create new output field names (different than those used by
# Definition L) and change all output fields to say low HS and low college
UNEMPLOYMENT_LOW_HS_EDUCATION_FIELD = ( UNEMPLOYMENT_LOW_HS_EDUCATION_FIELD = (
f"Greater than or equal to the {PERCENTILE}th percentile for unemployment" f"Greater than or equal to the {PERCENTILE}th percentile for unemployment"
" and has low HS education" " and has low HS education?"
) )
LINGUISTIC_ISOLATION_LOW_HS_EDUCATION_FIELD = ( LINGUISTIC_ISOLATION_LOW_HS_EDUCATION_FIELD = (
f"Greater than or equal to the {PERCENTILE}th percentile for households in linguistic isolation" f"Greater than or equal to the {PERCENTILE}th percentile for households in linguistic isolation"
" and has low HS education" " and has low HS education?"
) )
POVERTY_LOW_HS_EDUCATION_FIELD = ( POVERTY_LOW_HS_EDUCATION_FIELD = (
f"Greater than or equal to the {PERCENTILE}th percentile for households at or below 100% federal poverty level" f"Greater than or equal to the {PERCENTILE}th percentile for households at or below 100% federal poverty level"
" and has low HS education" " and has low HS education?"
) )
LOW_MEDIAN_INCOME_LOW_HS_EDUCATION_FIELD = ( LOW_MEDIAN_INCOME_LOW_HS_EDUCATION_FIELD = (
f"Greater than or equal to the {PERCENTILE}th percentile for low median household income as a " f"Greater than or equal to the {PERCENTILE}th percentile for low median household income as a "
f"percent of area median income and has low HS education" f"percent of area median income and has low HS education?"
)
# Score M Workforce Variables
SCORE_M_LOW_EDUCATION_SUFFIX = (
", has low HS attainment, and has a low percent of higher ed students"
)
UNEMPLOYMENT_LOW_HS_LOW_HIGHER_ED_FIELD = (
f"Greater than or equal to the {PERCENTILE}th percentile for unemployment"
f"{SCORE_M_LOW_EDUCATION_SUFFIX}?"
)
LINGUISTIC_ISOLATION_LOW_HS_LOW_HIGHER_ED_FIELD = (
f"Greater than or equal to the {PERCENTILE}th percentile for households in linguistic isolation"
f"{SCORE_M_LOW_EDUCATION_SUFFIX}?"
)
POVERTY_LOW_HS_LOW_HIGHER_ED_FIELD = (
f"Greater than or equal to the {PERCENTILE}th percentile for households at or below 100% federal poverty level"
f"{SCORE_M_LOW_EDUCATION_SUFFIX}?"
)
LOW_MEDIAN_INCOME_LOW_HS_LOW_HIGHER_ED_FIELD = (
f"Greater than or equal to the {PERCENTILE}th percentile for low median household income as a "
f"percent of area median income{SCORE_M_LOW_EDUCATION_SUFFIX}?"
) )
LOW_HS_EDUCATION_FIELD = "Low high school education" LOW_HS_EDUCATION_FIELD = "Low high school education"
LOW_HS_EDUCATION_LOW_COLLEGE_ATTENDANCE_FIELD = ( LOW_HS_EDUCATION_LOW_HIGHER_ED_FIELD = (
"Low high school education and low college attendance" "Low high school education and low percent of higher ed students"
) )
# Workforce for island areas # Workforce for island areas
ISLAND_AREAS_SUFFIX = " in 2009 (island areas)" ISLAND_AREAS_SUFFIX = " in 2009 (island areas)"
ISLAND_AREAS_UNEMPLOYMENT_LOW_HS_EDUCATION_FIELD = ( ISLAND_AREAS_UNEMPLOYMENT_LOW_HS_EDUCATION_FIELD = (
f"Greater than or equal to the {PERCENTILE}th percentile for unemployment" f"Greater than or equal to the {PERCENTILE}th percentile for unemployment"
f" and has low HS education{ISLAND_AREAS_SUFFIX}" f" and has low HS education{ISLAND_AREAS_SUFFIX}?"
) )
ISLAND_AREAS_POVERTY_LOW_HS_EDUCATION_FIELD = ( ISLAND_AREAS_POVERTY_LOW_HS_EDUCATION_FIELD = (
f"Greater than or equal to the {PERCENTILE}th percentile for households at or below 100% federal poverty level" f"Greater than or equal to the {PERCENTILE}th percentile for households at or below 100% federal poverty level"
f" and has low HS education{ISLAND_AREAS_SUFFIX}" f" and has low HS education{ISLAND_AREAS_SUFFIX}?"
) )
ISLAND_AREAS_LOW_MEDIAN_INCOME_LOW_HS_EDUCATION_FIELD = ( ISLAND_AREAS_LOW_MEDIAN_INCOME_LOW_HS_EDUCATION_FIELD = (
f"Greater than or equal to the {PERCENTILE}th percentile for low median household income as a " f"Greater than or equal to the {PERCENTILE}th percentile for low median household income as a "
f"percent of area median income" f"percent of area median income"
f" and has low HS education{ISLAND_AREAS_SUFFIX}" f" and has low HS education{ISLAND_AREAS_SUFFIX}?"
) )
ISLAND_AREAS_LOW_HS_EDUCATION_FIELD = ( ISLAND_AREAS_LOW_HS_EDUCATION_FIELD = (
@ -425,9 +530,10 @@ EXTREME_HEAT_MEDIAN_HOUSE_VALUE_LOW_INCOME_FIELD = (
f"the median house value is less than {MEDIAN_HOUSE_VALUE_PERCENTILE}th " f"the median house value is less than {MEDIAN_HOUSE_VALUE_PERCENTILE}th "
f"percentile and is low income?" f"percentile and is low income?"
) )
IMPENETRABLE_SURFACES_LOW_INCOME_FIELD = ( IMPENETRABLE_SURFACES_LOW_INCOME_FIELD = (
f"Greater than or equal to the {PERCENTILE}th percentile for impenetrable surfaces and is low " f"Greater than or equal to the {PERCENTILE}th percentile for impenetrable surfaces and is low "
f"income" f"income?"
) )
AIR_TOXICS_CANCER_RISK_LOW_INCOME_FIELD = f"Greater than or equal to the {PERCENTILE}th percentile for air toxics cancer risk and is low income?" AIR_TOXICS_CANCER_RISK_LOW_INCOME_FIELD = f"Greater than or equal to the {PERCENTILE}th percentile for air toxics cancer risk and is low income?"
RESPIRATORY_HAZARD_LOW_INCOME_FIELD = f"Greater than or equal to the {PERCENTILE}th percentile for respiratory hazard index and is low income?" RESPIRATORY_HAZARD_LOW_INCOME_FIELD = f"Greater than or equal to the {PERCENTILE}th percentile for respiratory hazard index and is low income?"
@ -435,16 +541,17 @@ HEALTHY_FOOD_LOW_INCOME_FIELD = (
f"Greater than or equal to the {PERCENTILE}th percentile for low " f"Greater than or equal to the {PERCENTILE}th percentile for low "
f"access to healthy food and is low income?" f"access to healthy food and is low income?"
) )
LOW_READING_LOW_HS_EDUCATION_FIELD = ( LOW_READING_LOW_HS_EDUCATION_FIELD = (
f"Greater than or equal to the {PERCENTILE}th percentile for low 3rd grade reading proficiency" f"Greater than or equal to the {PERCENTILE}th percentile for low 3rd grade reading proficiency"
" and has low HS education" " and has low HS education?"
) )
THRESHOLD_COUNT = "Total threshold criteria exceeded" THRESHOLD_COUNT = "Total threshold criteria exceeded"
FPL_200_SERIES = "Is low income?" FPL_200_SERIES = "Is low income?"
FPL_200_AND_COLLEGE_ATTENDANCE_SERIES = ( FPL_200_AND_COLLEGE_ATTENDANCE_SERIES = (
"Is low income and low college attendance?" "Is low income and has a low percent of higher ed students?"
) )
# End of names for individual factors being exceeded # End of names for individual factors being exceeded
#### ####

View file

@ -143,13 +143,13 @@ class ScoreM(Score):
# AND # AND
# Low income: In Nth percentile or above for percent of block group population # Low income: In Nth percentile or above for percent of block group population
# of households where household income is less than or equal to twice the federal # of households where household income is less than or equal to twice the federal
# poverty level. Source: Census's American Community Survey] # poverty level and there is low higher ed attendance
# Source: Census's American Community Survey
climate_eligibility_columns = [ climate_eligibility_columns = [
field_names.EXPECTED_POPULATION_LOSS_RATE_LOW_INCOME_FIELD, field_names.EXPECTED_POPULATION_LOSS_RATE_LOW_INCOME_LOW_HIGHER_ED_FIELD,
field_names.EXPECTED_AGRICULTURE_LOSS_RATE_LOW_INCOME_FIELD, field_names.EXPECTED_AGRICULTURE_LOSS_RATE_LOW_INCOME_LOW_HIGHER_ED_FIELD,
field_names.EXPECTED_BUILDING_LOSS_RATE_LOW_INCOME_FIELD, field_names.EXPECTED_BUILDING_LOSS_RATE_LOW_INCOME_LOW_HIGHER_ED_FIELD,
# field_names.EXTREME_HEAT_MEDIAN_HOUSE_VALUE_LOW_INCOME_FIELD,
] ]
expected_population_loss_threshold = ( expected_population_loss_threshold = (
@ -176,39 +176,24 @@ class ScoreM(Score):
>= self.ENVIRONMENTAL_BURDEN_THRESHOLD >= self.ENVIRONMENTAL_BURDEN_THRESHOLD
) )
extreme_heat_and_median_house_value_threshold = (
self.df[ self.df[
field_names.EXTREME_HEAT_FIELD field_names.EXPECTED_POPULATION_LOSS_RATE_LOW_INCOME_LOW_HIGHER_ED_FIELD
+ field_names.PERCENTILE_FIELD_SUFFIX ] = (
]
>= self.ENVIRONMENTAL_BURDEN_THRESHOLD
) & (
self.df[
field_names.MEDIAN_HOUSE_VALUE_FIELD
+ field_names.PERCENTILE_FIELD_SUFFIX
]
<= self.MEDIAN_HOUSE_VALUE_THRESHOLD
)
self.df[field_names.EXPECTED_POPULATION_LOSS_RATE_LOW_INCOME_FIELD] = (
expected_population_loss_threshold expected_population_loss_threshold
& self.df[field_names.FPL_200_AND_COLLEGE_ATTENDANCE_SERIES] & self.df[field_names.FPL_200_AND_COLLEGE_ATTENDANCE_SERIES]
) )
self.df[field_names.EXPECTED_AGRICULTURE_LOSS_RATE_LOW_INCOME_FIELD] = ( self.df[
field_names.EXPECTED_AGRICULTURE_LOSS_RATE_LOW_INCOME_LOW_HIGHER_ED_FIELD
] = (
expected_agriculture_loss_threshold expected_agriculture_loss_threshold
& self.df[field_names.FPL_200_AND_COLLEGE_ATTENDANCE_SERIES] & self.df[field_names.FPL_200_AND_COLLEGE_ATTENDANCE_SERIES]
) )
self.df[field_names.EXPECTED_BUILDING_LOSS_RATE_LOW_INCOME_FIELD] = (
expected_building_loss_threshold
& self.df[field_names.FPL_200_AND_COLLEGE_ATTENDANCE_SERIES]
)
self.df[ self.df[
field_names.EXTREME_HEAT_MEDIAN_HOUSE_VALUE_LOW_INCOME_FIELD field_names.EXPECTED_BUILDING_LOSS_RATE_LOW_INCOME_LOW_HIGHER_ED_FIELD
] = ( ] = (
extreme_heat_and_median_house_value_threshold expected_building_loss_threshold
& self.df[field_names.FPL_200_AND_COLLEGE_ATTENDANCE_SERIES] & self.df[field_names.FPL_200_AND_COLLEGE_ATTENDANCE_SERIES]
) )
@ -221,11 +206,12 @@ class ScoreM(Score):
# AND # AND
# Low income: In Nth percentile or above for percent of block group population # Low income: In Nth percentile or above for percent of block group population
# of households where household income is less than or equal to twice the federal # of households where household income is less than or equal to twice the federal
# poverty level. Source: Census's American Community Survey] # poverty level and has low higher ed attendance.
# Source: Census's American Community Survey
energy_eligibility_columns = [ energy_eligibility_columns = [
field_names.PM25_EXPOSURE_LOW_INCOME_FIELD, field_names.PM25_EXPOSURE_LOW_INCOME_LOW_HIGHER_ED_FIELD,
field_names.ENERGY_BURDEN_LOW_INCOME_FIELD, field_names.ENERGY_BURDEN_LOW_INCOME_LOW_HIGHER_ED_FIELD,
] ]
energy_burden_threshold = ( energy_burden_threshold = (
@ -243,12 +229,12 @@ class ScoreM(Score):
>= self.ENVIRONMENTAL_BURDEN_THRESHOLD >= self.ENVIRONMENTAL_BURDEN_THRESHOLD
) )
self.df[field_names.PM25_EXPOSURE_LOW_INCOME_FIELD] = ( self.df[field_names.PM25_EXPOSURE_LOW_INCOME_LOW_HIGHER_ED_FIELD] = (
pm25_threshold pm25_threshold
& self.df[field_names.FPL_200_AND_COLLEGE_ATTENDANCE_SERIES] & self.df[field_names.FPL_200_AND_COLLEGE_ATTENDANCE_SERIES]
) )
self.df[field_names.ENERGY_BURDEN_LOW_INCOME_FIELD] = ( self.df[field_names.ENERGY_BURDEN_LOW_INCOME_LOW_HIGHER_ED_FIELD] = (
energy_burden_threshold energy_burden_threshold
& self.df[field_names.FPL_200_AND_COLLEGE_ATTENDANCE_SERIES] & self.df[field_names.FPL_200_AND_COLLEGE_ATTENDANCE_SERIES]
) )
@ -266,11 +252,12 @@ class ScoreM(Score):
# AND # AND
# Low income: In Nth percentile or above for percent of block group population # Low income: In Nth percentile or above for percent of block group population
# of households where household income is less than or equal to twice the federal # of households where household income is less than or equal to twice the federal
# poverty level. Source: Census's American Community Survey] # poverty level and has a low percent of higher ed students.
# Source: Census's American Community Survey
transportion_eligibility_columns = [ transportion_eligibility_columns = [
field_names.DIESEL_PARTICULATE_MATTER_LOW_INCOME_FIELD, field_names.DIESEL_PARTICULATE_MATTER_LOW_INCOME_LOW_HIGHER_ED_FIELD,
field_names.TRAFFIC_PROXIMITY_LOW_INCOME_FIELD, field_names.TRAFFIC_PROXIMITY_LOW_INCOME_LOW_HIGHER_ED_FIELD,
] ]
diesel_threshold = ( diesel_threshold = (
@ -287,12 +274,16 @@ class ScoreM(Score):
>= self.ENVIRONMENTAL_BURDEN_THRESHOLD >= self.ENVIRONMENTAL_BURDEN_THRESHOLD
) )
self.df[field_names.DIESEL_PARTICULATE_MATTER_LOW_INCOME_FIELD] = ( self.df[
field_names.DIESEL_PARTICULATE_MATTER_LOW_INCOME_LOW_HIGHER_ED_FIELD
] = (
diesel_threshold diesel_threshold
& self.df[field_names.FPL_200_AND_COLLEGE_ATTENDANCE_SERIES] & self.df[field_names.FPL_200_AND_COLLEGE_ATTENDANCE_SERIES]
) )
self.df[field_names.TRAFFIC_PROXIMITY_LOW_INCOME_FIELD] = ( self.df[
field_names.TRAFFIC_PROXIMITY_LOW_INCOME_LOW_HIGHER_ED_FIELD
] = (
traffic_threshold traffic_threshold
& self.df[field_names.FPL_200_AND_COLLEGE_ATTENDANCE_SERIES] & self.df[field_names.FPL_200_AND_COLLEGE_ATTENDANCE_SERIES]
) )
@ -315,11 +306,12 @@ class ScoreM(Score):
# AND # AND
# Low income: In Nth percentile or above for percent of block group population # Low income: In Nth percentile or above for percent of block group population
# of households where household income is less than or equal to twice the federal # of households where household income is less than or equal to twice the federal
# poverty level. Source: Census's American Community Survey] # poverty level and has a low percent of higher ed students.
# Source: Census's American Community Survey
housing_eligibility_columns = [ housing_eligibility_columns = [
field_names.LEAD_PAINT_MEDIAN_HOUSE_VALUE_LOW_INCOME_FIELD, field_names.LEAD_PAINT_MEDIAN_HOUSE_VALUE_LOW_INCOME_LOW_HIGHER_ED_FIELD,
field_names.HOUSING_BURDEN_LOW_INCOME_FIELD, field_names.HOUSING_BURDEN_LOW_INCOME_LOW_HIGHER_ED_FIELD,
] ]
lead_paint_median_home_value_threshold = ( lead_paint_median_home_value_threshold = (
@ -345,12 +337,14 @@ class ScoreM(Score):
) )
# series by series indicators # series by series indicators
self.df[field_names.LEAD_PAINT_MEDIAN_HOUSE_VALUE_LOW_INCOME_FIELD] = ( self.df[
field_names.LEAD_PAINT_MEDIAN_HOUSE_VALUE_LOW_INCOME_LOW_HIGHER_ED_FIELD
] = (
lead_paint_median_home_value_threshold lead_paint_median_home_value_threshold
& self.df[field_names.FPL_200_AND_COLLEGE_ATTENDANCE_SERIES] & self.df[field_names.FPL_200_AND_COLLEGE_ATTENDANCE_SERIES]
) )
self.df[field_names.HOUSING_BURDEN_LOW_INCOME_FIELD] = ( self.df[field_names.HOUSING_BURDEN_LOW_INCOME_LOW_HIGHER_ED_FIELD] = (
housing_burden_threshold housing_burden_threshold
& self.df[field_names.FPL_200_AND_COLLEGE_ATTENDANCE_SERIES] & self.df[field_names.FPL_200_AND_COLLEGE_ATTENDANCE_SERIES]
) )
@ -364,12 +358,13 @@ class ScoreM(Score):
# AND # AND
# Low income: In Nth percentile or above for percent of block group population # Low income: In Nth percentile or above for percent of block group population
# of households where household income is less than or equal to twice the federal # of households where household income is less than or equal to twice the federal
# poverty level. Source: Census's American Community Survey] # poverty level and has a low percent of higher ed students.
# Source: Census's American Community Survey
pollution_eligibility_columns = [ pollution_eligibility_columns = [
field_names.RMP_LOW_INCOME_FIELD, field_names.RMP_LOW_INCOME_LOW_HIGHER_ED_FIELD,
field_names.SUPERFUND_LOW_INCOME_FIELD, field_names.SUPERFUND_LOW_INCOME_LOW_HIGHER_ED_FIELD,
field_names.HAZARDOUS_WASTE_LOW_INCOME_FIELD, field_names.HAZARDOUS_WASTE_LOW_INCOME_LOW_HIGHER_ED_FIELD,
] ]
rmp_sites_threshold = ( rmp_sites_threshold = (
@ -390,15 +385,15 @@ class ScoreM(Score):
) )
# individual series-by-series # individual series-by-series
self.df[field_names.RMP_LOW_INCOME_FIELD] = ( self.df[field_names.RMP_LOW_INCOME_LOW_HIGHER_ED_FIELD] = (
rmp_sites_threshold rmp_sites_threshold
& self.df[field_names.FPL_200_AND_COLLEGE_ATTENDANCE_SERIES] & self.df[field_names.FPL_200_AND_COLLEGE_ATTENDANCE_SERIES]
) )
self.df[field_names.SUPERFUND_LOW_INCOME_FIELD] = ( self.df[field_names.SUPERFUND_LOW_INCOME_LOW_HIGHER_ED_FIELD] = (
npl_sites_threshold npl_sites_threshold
& self.df[field_names.FPL_200_AND_COLLEGE_ATTENDANCE_SERIES] & self.df[field_names.FPL_200_AND_COLLEGE_ATTENDANCE_SERIES]
) )
self.df[field_names.HAZARDOUS_WASTE_LOW_INCOME_FIELD] = ( self.df[field_names.HAZARDOUS_WASTE_LOW_INCOME_LOW_HIGHER_ED_FIELD] = (
tsdf_sites_threshold tsdf_sites_threshold
& self.df[field_names.FPL_200_AND_COLLEGE_ATTENDANCE_SERIES] & self.df[field_names.FPL_200_AND_COLLEGE_ATTENDANCE_SERIES]
) )
@ -414,7 +409,8 @@ class ScoreM(Score):
# AND # AND
# Low income: In Nth percentile or above for percent of block group population # Low income: In Nth percentile or above for percent of block group population
# of households where household income is less than or equal to twice the federal # of households where household income is less than or equal to twice the federal
# poverty level. Source: Census's American Community Survey] # poverty level and has a low percent of higher ed students
# Source: Census's American Community Survey
wastewater_threshold = ( wastewater_threshold = (
self.df[ self.df[
@ -424,16 +420,20 @@ class ScoreM(Score):
>= self.ENVIRONMENTAL_BURDEN_THRESHOLD >= self.ENVIRONMENTAL_BURDEN_THRESHOLD
) )
self.df[field_names.WASTEWATER_DISCHARGE_LOW_INCOME_FIELD] = ( self.df[
field_names.WASTEWATER_DISCHARGE_LOW_INCOME_LOW_HIGHER_ED_FIELD
] = (
wastewater_threshold wastewater_threshold
& self.df[field_names.FPL_200_AND_COLLEGE_ATTENDANCE_SERIES] & self.df[field_names.FPL_200_AND_COLLEGE_ATTENDANCE_SERIES]
) )
self._increment_total_eligibility_exceeded( self._increment_total_eligibility_exceeded(
[field_names.WASTEWATER_DISCHARGE_LOW_INCOME_FIELD] [field_names.WASTEWATER_DISCHARGE_LOW_INCOME_LOW_HIGHER_ED_FIELD]
) )
return self.df[field_names.WASTEWATER_DISCHARGE_LOW_INCOME_FIELD] return self.df[
field_names.WASTEWATER_DISCHARGE_LOW_INCOME_LOW_HIGHER_ED_FIELD
]
def _health_factor(self) -> bool: def _health_factor(self) -> bool:
# In Xth percentile or above for diabetes (Source: CDC Places) # In Xth percentile or above for diabetes (Source: CDC Places)
@ -446,14 +446,14 @@ class ScoreM(Score):
# AND # AND
# Low income: In Nth percentile or above for percent of block group population # Low income: In Nth percentile or above for percent of block group population
# of households where household income is less than or equal to twice the federal # of households where household income is less than or equal to twice the federal
# poverty level. Source: Census's American Community Survey] # poverty level and has a low percent of higher ed students
# Source: Census's American Community Survey
health_eligibility_columns = [ health_eligibility_columns = [
field_names.DIABETES_LOW_INCOME_FIELD, field_names.DIABETES_LOW_INCOME_LOW_HIGHER_ED_FIELD,
field_names.ASTHMA_LOW_INCOME_FIELD, field_names.ASTHMA_LOW_INCOME_LOW_HIGHER_ED_FIELD,
field_names.HEART_DISEASE_LOW_INCOME_FIELD, field_names.HEART_DISEASE_LOW_INCOME_LOW_HIGHER_ED_FIELD,
field_names.LOW_LIFE_EXPECTANCY_LOW_INCOME_FIELD, field_names.LOW_LIFE_EXPECTANCY_LOW_INCOME_LOW_HIGHER_ED_FIELD,
# field_names.HEALTHY_FOOD_LOW_INCOME_FIELD,
] ]
diabetes_threshold = ( diabetes_threshold = (
@ -486,34 +486,24 @@ class ScoreM(Score):
>= self.ENVIRONMENTAL_BURDEN_THRESHOLD >= self.ENVIRONMENTAL_BURDEN_THRESHOLD
) )
healthy_food_threshold = ( self.df[field_names.DIABETES_LOW_INCOME_LOW_HIGHER_ED_FIELD] = (
self.df[
field_names.HEALTHY_FOOD_FIELD
+ field_names.PERCENTILE_FIELD_SUFFIX
]
>= self.ENVIRONMENTAL_BURDEN_THRESHOLD
)
self.df[field_names.DIABETES_LOW_INCOME_FIELD] = (
diabetes_threshold diabetes_threshold
& self.df[field_names.FPL_200_AND_COLLEGE_ATTENDANCE_SERIES] & self.df[field_names.FPL_200_AND_COLLEGE_ATTENDANCE_SERIES]
) )
self.df[field_names.ASTHMA_LOW_INCOME_FIELD] = ( self.df[field_names.ASTHMA_LOW_INCOME_LOW_HIGHER_ED_FIELD] = (
asthma_threshold asthma_threshold
& self.df[field_names.FPL_200_AND_COLLEGE_ATTENDANCE_SERIES] & self.df[field_names.FPL_200_AND_COLLEGE_ATTENDANCE_SERIES]
) )
self.df[field_names.HEART_DISEASE_LOW_INCOME_FIELD] = ( self.df[field_names.HEART_DISEASE_LOW_INCOME_LOW_HIGHER_ED_FIELD] = (
heart_disease_threshold heart_disease_threshold
& self.df[field_names.FPL_200_AND_COLLEGE_ATTENDANCE_SERIES] & self.df[field_names.FPL_200_AND_COLLEGE_ATTENDANCE_SERIES]
) )
self.df[field_names.LOW_LIFE_EXPECTANCY_LOW_INCOME_FIELD] = ( self.df[
field_names.LOW_LIFE_EXPECTANCY_LOW_INCOME_LOW_HIGHER_ED_FIELD
] = (
low_life_expectancy_threshold low_life_expectancy_threshold
& self.df[field_names.FPL_200_AND_COLLEGE_ATTENDANCE_SERIES] & self.df[field_names.FPL_200_AND_COLLEGE_ATTENDANCE_SERIES]
) )
self.df[field_names.HEALTHY_FOOD_LOW_INCOME_FIELD] = (
healthy_food_threshold
& self.df[field_names.FPL_200_AND_COLLEGE_ATTENDANCE_SERIES]
)
self._increment_total_eligibility_exceeded(health_eligibility_columns) self._increment_total_eligibility_exceeded(health_eligibility_columns)
@ -531,17 +521,18 @@ class ScoreM(Score):
# AND # AND
# Where the high school degree achievement rates for adults 25 years and older # Where the high school degree achievement rates for adults 25 years and older
# is less than Y% # is less than Y%
# AND the higher ed attendance rates are under Z%
# (necessary to screen out university tracts) # (necessary to screen out university tracts)
# Workforce criteria for states fields. # Workforce criteria for states fields.
workforce_eligibility_columns = [ workforce_eligibility_columns = [
field_names.UNEMPLOYMENT_LOW_HS_EDUCATION_FIELD, field_names.UNEMPLOYMENT_LOW_HS_LOW_HIGHER_ED_FIELD,
field_names.POVERTY_LOW_HS_EDUCATION_FIELD, field_names.POVERTY_LOW_HS_LOW_HIGHER_ED_FIELD,
field_names.LINGUISTIC_ISOLATION_LOW_HS_EDUCATION_FIELD, field_names.LINGUISTIC_ISOLATION_LOW_HS_LOW_HIGHER_ED_FIELD,
field_names.LOW_MEDIAN_INCOME_LOW_HS_EDUCATION_FIELD, field_names.LOW_MEDIAN_INCOME_LOW_HS_LOW_HIGHER_ED_FIELD,
] ]
self.df[field_names.LOW_HS_EDUCATION_LOW_COLLEGE_ATTENDANCE_FIELD] = ( self.df[field_names.LOW_HS_EDUCATION_LOW_HIGHER_ED_FIELD] = (
self.df[field_names.HIGH_SCHOOL_ED_FIELD] self.df[field_names.HIGH_SCHOOL_ED_FIELD]
>= self.LACK_OF_HIGH_SCHOOL_MINIMUM_THRESHOLD >= self.LACK_OF_HIGH_SCHOOL_MINIMUM_THRESHOLD
) & ( ) & (
@ -588,24 +579,24 @@ class ScoreM(Score):
>= self.ENVIRONMENTAL_BURDEN_THRESHOLD >= self.ENVIRONMENTAL_BURDEN_THRESHOLD
) )
self.df[field_names.LINGUISTIC_ISOLATION_LOW_HS_EDUCATION_FIELD] = ( self.df[field_names.LINGUISTIC_ISOLATION_LOW_HS_LOW_HIGHER_ED_FIELD] = (
linguistic_isolation_threshold linguistic_isolation_threshold
& self.df[field_names.LOW_HS_EDUCATION_LOW_COLLEGE_ATTENDANCE_FIELD] & self.df[field_names.LOW_HS_EDUCATION_LOW_HIGHER_ED_FIELD]
) )
self.df[field_names.POVERTY_LOW_HS_EDUCATION_FIELD] = ( self.df[field_names.POVERTY_LOW_HS_LOW_HIGHER_ED_FIELD] = (
poverty_threshold poverty_threshold
& self.df[field_names.LOW_HS_EDUCATION_LOW_COLLEGE_ATTENDANCE_FIELD] & self.df[field_names.LOW_HS_EDUCATION_LOW_HIGHER_ED_FIELD]
) )
self.df[field_names.LOW_MEDIAN_INCOME_LOW_HS_EDUCATION_FIELD] = ( self.df[field_names.LOW_MEDIAN_INCOME_LOW_HS_LOW_HIGHER_ED_FIELD] = (
low_median_income_threshold low_median_income_threshold
& self.df[field_names.LOW_HS_EDUCATION_LOW_COLLEGE_ATTENDANCE_FIELD] & self.df[field_names.LOW_HS_EDUCATION_LOW_HIGHER_ED_FIELD]
) )
self.df[field_names.UNEMPLOYMENT_LOW_HS_EDUCATION_FIELD] = ( self.df[field_names.UNEMPLOYMENT_LOW_HS_LOW_HIGHER_ED_FIELD] = (
unemployment_threshold unemployment_threshold
& self.df[field_names.LOW_HS_EDUCATION_LOW_COLLEGE_ATTENDANCE_FIELD] & self.df[field_names.LOW_HS_EDUCATION_LOW_HIGHER_ED_FIELD]
) )
workforce_combined_criteria_for_states = self.df[ workforce_combined_criteria_for_states = self.df[