updating ejscreen data, try two (#1747)

This commit is contained in:
Emma Nechamkin 2022-07-18 09:59:10 -04:00 committed by Emma Nechamkin
parent 002cddf68e
commit e98282dcef
4 changed files with 11 additions and 14 deletions

View file

@ -43,9 +43,7 @@ class ScoreETL(ExtractTransformLoad):
logger.info("Loading data sets from disk.") logger.info("Loading data sets from disk.")
# EJSCreen csv Load # EJSCreen csv Load
ejscreen_csv = ( ejscreen_csv = constants.DATA_PATH / "dataset" / "ejscreen" / "usa.csv"
constants.DATA_PATH / "dataset" / "ejscreen_2019" / "usa.csv"
)
self.ejscreen_df = pd.read_csv( self.ejscreen_df = pd.read_csv(
ejscreen_csv, ejscreen_csv,
dtype={self.GEOID_TRACT_FIELD_NAME: "string"}, dtype={self.GEOID_TRACT_FIELD_NAME: "string"},

View file

@ -8,16 +8,14 @@ logger = get_module_logger(__name__)
class EJSCREENETL(ExtractTransformLoad): class EJSCREENETL(ExtractTransformLoad):
"""Load EJSCREEN data. """Load updated EJSCREEN data."""
Data dictionary:
https://gaftp.epa.gov/EJSCREEN/2019/2019_EJSCREEN_columns_explained.csv
"""
def __init__(self): def __init__(self):
self.EJSCREEN_FTP_URL = "https://edap-arcgiscloud-data-commons.s3.amazonaws.com/EJSCREEN2020/EJSCREEN_Tract_2020_USPR.csv.zip" self.EJSCREEN_FTP_URL = "https://gaftp.epa.gov/EJSCREEN/2021/EJSCREEN_2021_USPR_Tracts.csv.zip"
self.EJSCREEN_CSV = self.get_tmp_path() / "EJSCREEN_Tract_2020_USPR.csv" self.EJSCREEN_CSV = (
self.CSV_PATH = self.DATA_PATH / "dataset" / "ejscreen_2019" self.get_tmp_path() / "EJSCREEN_2021_USPR_Tracts.csv"
)
self.CSV_PATH = self.DATA_PATH / "dataset" / "ejscreen"
self.df: pd.DataFrame self.df: pd.DataFrame
self.COLUMNS_TO_KEEP = [ self.COLUMNS_TO_KEEP = [
@ -39,6 +37,7 @@ class EJSCREENETL(ExtractTransformLoad):
field_names.OVER_64_FIELD, field_names.OVER_64_FIELD,
field_names.UNDER_5_FIELD, field_names.UNDER_5_FIELD,
field_names.LEAD_PAINT_FIELD, field_names.LEAD_PAINT_FIELD,
field_names.UST_FIELD,
] ]
def extract(self) -> None: def extract(self) -> None:
@ -53,7 +52,7 @@ class EJSCREENETL(ExtractTransformLoad):
logger.info("Transforming EJScreen Data") logger.info("Transforming EJScreen Data")
self.df = pd.read_csv( self.df = pd.read_csv(
self.EJSCREEN_CSV, self.EJSCREEN_CSV,
dtype={"ID": "string"}, dtype={"ID": str},
# EJSCREEN writes the word "None" for NA data. # EJSCREEN writes the word "None" for NA data.
na_values=["None"], na_values=["None"],
low_memory=False, low_memory=False,
@ -63,8 +62,6 @@ class EJSCREENETL(ExtractTransformLoad):
self.df.rename( self.df.rename(
columns={ columns={
"ID": self.GEOID_TRACT_FIELD_NAME, "ID": self.GEOID_TRACT_FIELD_NAME,
# Note: it is currently unorthodox to use `field_names` in an ETL class,
# but I think that's the direction we'd like to move all ETL classes. - LMB
"ACSTOTPOP": field_names.TOTAL_POP_FIELD, "ACSTOTPOP": field_names.TOTAL_POP_FIELD,
"CANCER": field_names.AIR_TOXICS_CANCER_RISK_FIELD, "CANCER": field_names.AIR_TOXICS_CANCER_RISK_FIELD,
"RESP": field_names.RESPIRATORY_HAZARD_FIELD, "RESP": field_names.RESPIRATORY_HAZARD_FIELD,
@ -81,6 +78,7 @@ class EJSCREENETL(ExtractTransformLoad):
"OVER64PCT": field_names.OVER_64_FIELD, "OVER64PCT": field_names.OVER_64_FIELD,
"UNDER5PCT": field_names.UNDER_5_FIELD, "UNDER5PCT": field_names.UNDER_5_FIELD,
"PRE1960PCT": field_names.LEAD_PAINT_FIELD, "PRE1960PCT": field_names.LEAD_PAINT_FIELD,
"UST": field_names.UST_FIELD, # added for 2021 update
}, },
inplace=True, inplace=True,
) )

View file

@ -170,6 +170,7 @@ TSDF_FIELD = "Proximity to hazardous waste sites"
NPL_FIELD = "Proximity to NPL sites" NPL_FIELD = "Proximity to NPL sites"
AIR_TOXICS_CANCER_RISK_FIELD = "Air toxics cancer risk" AIR_TOXICS_CANCER_RISK_FIELD = "Air toxics cancer risk"
RESPIRATORY_HAZARD_FIELD = "Respiratory hazard index" RESPIRATORY_HAZARD_FIELD = "Respiratory hazard index"
UST_FIELD = "Underground storage tanks"
LOW_INCOME_THRESHOLD = "Exceeds FPL200 threshold" LOW_INCOME_THRESHOLD = "Exceeds FPL200 threshold"