Make tribal overlap set score N (#2004)

* Add "Is a Tribal DAC" field (#1998)

* Add tribal DACs to score N final (#1998)

* Add new fields to downloads (#1998)

* Make a int a float (#1998)

* Update field names, apply feedback (#1998)
This commit is contained in:
Matt Bowen 2022-10-12 14:59:23 -04:00 committed by GitHub
commit 8b611edae6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 63 additions and 8 deletions

View file

@ -279,6 +279,8 @@ TILES_SCORE_COLUMNS = {
field_names.SCORE_N_COMMUNITIES
+ field_names.ADJACENT_MEAN_SUFFIX: "SN_DON",
field_names.SCORE_N_COMMUNITIES: "SN_NO_DON",
field_names.IS_TRIBAL_DAC: "SN_T",
field_names.PERCENT_OF_TRACT_IS_DAC: "SN_PERC",
field_names.EXPECTED_POPULATION_LOSS_RATE_LOW_INCOME_FIELD: "EPLRLI",
field_names.EXPECTED_AGRICULTURE_LOSS_RATE_LOW_INCOME_FIELD: "EALRLI",
field_names.EXPECTED_BUILDING_LOSS_RATE_LOW_INCOME_FIELD: "EBLRLI",
@ -472,4 +474,5 @@ TILES_SCORE_FLOAT_COLUMNS = [
field_names.AML_BOOLEAN,
field_names.HISTORIC_REDLINING_SCORE_EXCEEDED,
field_names.PERCENT_OF_TRIBAL_AREA_IN_TRACT,
field_names.PERCENT_OF_TRACT_IS_DAC,
]

View file

@ -505,6 +505,7 @@ class ScoreETL(ExtractTransformLoad):
field_names.IMPUTED_INCOME_FLAG_FIELD_NAME,
field_names.ELIGIBLE_FUDS_BINARY_FIELD_NAME,
field_names.HISTORIC_REDLINING_SCORE_EXCEEDED,
field_names.IS_TRIBAL_DAC,
]
# For some columns, high values are "good", so we want to reverse the percentile

File diff suppressed because one or more lines are too long

View file

@ -48,6 +48,7 @@ class TribalOverlapETL(ExtractTransformLoad):
ANNETTE_ISLAND_TRIBAL_NAME = "Annette Island LAR"
CRS_INTEGER = 3857
TRIBAL_OVERLAP_CUTOFF = 0.995 # Percentage of overlap that rounds to 100%
# Define these for easy code completion
def __init__(self):
@ -58,6 +59,7 @@ class TribalOverlapETL(ExtractTransformLoad):
field_names.PERCENT_OF_TRIBAL_AREA_IN_TRACT,
field_names.NAMES_OF_TRIBAL_AREAS_IN_TRACT,
field_names.PERCENT_OF_TRIBAL_AREA_IN_TRACT_DISPLAY,
field_names.IS_TRIBAL_DAC,
]
self.OVERALL_TRIBAL_COUNT = "OVERALL_TRIBAL_COUNT"
@ -72,8 +74,9 @@ class TribalOverlapETL(ExtractTransformLoad):
str_list = sorted(str_list)
return ", ".join(str_list)
@staticmethod
@classmethod
def _adjust_percentage_for_frontend(
cls,
percentage_float: float,
) -> Optional[float]:
"""Round numbers very close to 0 to 0 and very close to 1 to 1 for display"""
@ -81,7 +84,7 @@ class TribalOverlapETL(ExtractTransformLoad):
return None
if percentage_float < 0.01:
return 0.0
if percentage_float > 0.9995:
if percentage_float > cls.TRIBAL_OVERLAP_CUTOFF:
return 1.0
return percentage_float
@ -246,6 +249,11 @@ class TribalOverlapETL(ExtractTransformLoad):
field_names.COUNT_OF_TRIBAL_AREAS_IN_TRACT_CONUS
] = None
merged_output_df[field_names.IS_TRIBAL_DAC] = (
merged_output_df[field_names.PERCENT_OF_TRIBAL_AREA_IN_TRACT]
> self.TRIBAL_OVERLAP_CUTOFF
)
# The very final thing we want to do is produce a string for the front end to show
# We do this here so that all of the logic is included
merged_output_df[