mirror of
https://github.com/DOI-DO/j40-cejst-2.git
synced 2025-08-03 18:34:18 -07:00
Merge branch 'main' into esfoobar-usds/1062-implement-changes-export-files
This commit is contained in:
commit
d01bbc7dfa
32 changed files with 1463 additions and 562 deletions
|
@ -25,7 +25,7 @@ Descargar desde [sitio web](https://git-scm.com/download/win)
|
||||||
2. Valide la instalación escribiendo `brew -v` en la terminal y asegúrese de que se muestre un número de versión.
|
2. Valide la instalación escribiendo `brew -v` en la terminal y asegúrese de que se muestre un número de versión.
|
||||||
|
|
||||||
### Instalar Node usando NVM
|
### Instalar Node usando NVM
|
||||||
|
<!-- markdown-link-check-disable-next-line -->
|
||||||
Esto funcionará tanto para MacOS como para Win10. Siga las instrucciones de este [enlace](https://medium.com/@nodesource/installing-node-js-tutorial-using-nvm-5c6ff5925dd8)
|
Esto funcionará tanto para MacOS como para Win10. Siga las instrucciones de este [enlace](https://medium.com/@nodesource/installing-node-js-tutorial-using-nvm-5c6ff5925dd8)
|
||||||
|
|
||||||
### Configuración de IDE
|
### Configuración de IDE
|
||||||
|
|
|
@ -19,6 +19,7 @@ This README contains the following content:
|
||||||
|
|
||||||
#### Install Node using NVM
|
#### Install Node using NVM
|
||||||
|
|
||||||
|
<!-- markdown-link-check-disable-next-line -->
|
||||||
This will work for both MacOS and Win10. Follow instructions on this [link](https://medium.com/@nodesource/installing-node-js-tutorial-using-nvm-5c6ff5925dd8). Be sure to read through the whole doc to find the sections within each step relevant to you (e.g. if you're using Homebrew, when you get to Step 2 look for the section, "Install NVM with Homebrew").
|
This will work for both MacOS and Win10. Follow instructions on this [link](https://medium.com/@nodesource/installing-node-js-tutorial-using-nvm-5c6ff5925dd8). Be sure to read through the whole doc to find the sections within each step relevant to you (e.g. if you're using Homebrew, when you get to Step 2 look for the section, "Install NVM with Homebrew").
|
||||||
|
|
||||||
If you install NVM using Homebrew, make sure to read the output in terminal after you run `brew install nvm`. You will need to add a few lines to your ~/.bash_profile and perhaps complete a couple other tasks.
|
If you install NVM using Homebrew, make sure to read the output in terminal after you run `brew install nvm`. You will need to add a few lines to your ~/.bash_profile and perhaps complete a couple other tasks.
|
||||||
|
@ -70,6 +71,7 @@ DATA_SOURCE env variable in the docker-compose.yml. See [environment variables](
|
||||||
|
|
||||||
#### Troubleshooting docker
|
#### Troubleshooting docker
|
||||||
|
|
||||||
|
<!-- markdown-link-check-disable-next-line -->
|
||||||
- If an error is thrown about [running out of space](https://medium.com/@wlarch/no-space-left-on-device-when-using-docker-compose-why-c4a2c783c6f6) on device see this for ways to reclaim space.
|
- If an error is thrown about [running out of space](https://medium.com/@wlarch/no-space-left-on-device-when-using-docker-compose-why-c4a2c783c6f6) on device see this for ways to reclaim space.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -82,3 +82,21 @@ $sidePanelLabelFontColor: #171716;
|
||||||
font-size: medium;
|
font-size: medium;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// The following class is used in the AccordionItems in the AreaDetail component.
|
||||||
|
// The Accordion component (parent of AccordionItems) requires some CSS overrides.
|
||||||
|
// Local styling is not allowing the override.
|
||||||
|
// The override is needed to push into the bounds of the Accordion component's styles.
|
||||||
|
// To override this, in globals.scss, we set the this .categoryHeader's vertical alignment by
|
||||||
|
// setting styles in:
|
||||||
|
// .usa-accordion__content > *:first-child
|
||||||
|
// This first child of the accordion content is the category header:
|
||||||
|
.categoryHeader {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
text-transform: uppercase;
|
||||||
|
font-size: small;
|
||||||
|
@include u-bg('gray-cool-5');
|
||||||
|
@include u-padding-left(2.5);
|
||||||
|
@include u-padding-right(2);
|
||||||
|
}
|
|
@ -11,6 +11,7 @@ declare namespace MapModuleScssNamespace {
|
||||||
versionInfo: string;
|
versionInfo: string;
|
||||||
showThresholdExceed:string;
|
showThresholdExceed:string;
|
||||||
hideThresholdExceed:string;
|
hideThresholdExceed:string;
|
||||||
|
categoryHeader:string;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,11 +18,20 @@ interface IAreaDetailProps {
|
||||||
properties: constants.J40Properties,
|
properties: constants.J40Properties,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This interface is used as define the various fields for each indicator in the side panel
|
||||||
|
* label: the indicator label or title
|
||||||
|
* description: the description of the indicator used in the side panel
|
||||||
|
* value: the number from the geoJSON tile
|
||||||
|
* isDisadvagtaged: the flag from the geoJSON tile
|
||||||
|
* isPercent: is the value a percent or percentile
|
||||||
|
* */
|
||||||
export interface indicatorInfo {
|
export interface indicatorInfo {
|
||||||
label: string,
|
label: string,
|
||||||
description: string,
|
description: string,
|
||||||
value: number,
|
value: number,
|
||||||
isDisadvagtaged: boolean,
|
isDisadvagtaged: boolean,
|
||||||
|
isPercent?: boolean,
|
||||||
}
|
}
|
||||||
|
|
||||||
const AreaDetail = ({properties}:IAreaDetailProps) => {
|
const AreaDetail = ({properties}:IAreaDetailProps) => {
|
||||||
|
@ -45,84 +54,84 @@ const AreaDetail = ({properties}:IAreaDetailProps) => {
|
||||||
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.EXP_AG_LOSS),
|
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.EXP_AG_LOSS),
|
||||||
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.EXP_AG_LOSS),
|
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.EXP_AG_LOSS),
|
||||||
value: properties[constants.EXP_AGRICULTURE_LOSS_PERCENTILE] ?
|
value: properties[constants.EXP_AGRICULTURE_LOSS_PERCENTILE] ?
|
||||||
properties[constants.EXP_AGRICULTURE_LOSS_PERCENTILE] : null,
|
properties[constants.EXP_AGRICULTURE_LOSS_PERCENTILE] : null,
|
||||||
isDisadvagtaged: properties[constants.IS_GTE_90_EXP_AGR_LOSS_AND_IS_LOW_INCOME] ?
|
isDisadvagtaged: properties[constants.IS_GTE_90_EXP_AGR_LOSS_AND_IS_LOW_INCOME] ?
|
||||||
properties[constants.IS_GTE_90_EXP_AGR_LOSS_AND_IS_LOW_INCOME] : null,
|
properties[constants.IS_GTE_90_EXP_AGR_LOSS_AND_IS_LOW_INCOME] : null,
|
||||||
};
|
};
|
||||||
const expBldLoss:indicatorInfo = {
|
const expBldLoss:indicatorInfo = {
|
||||||
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.EXP_BLD_LOSS),
|
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.EXP_BLD_LOSS),
|
||||||
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.EXP_BLD_LOSS),
|
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.EXP_BLD_LOSS),
|
||||||
value: properties[constants.EXP_BUILDING_LOSS_PERCENTILE] ?
|
value: properties[constants.EXP_BUILDING_LOSS_PERCENTILE] ?
|
||||||
properties[constants.EXP_BUILDING_LOSS_PERCENTILE] : null,
|
properties[constants.EXP_BUILDING_LOSS_PERCENTILE] : null,
|
||||||
isDisadvagtaged: properties[constants.IS_GTE_90_EXP_BLD_LOSS_AND_IS_LOW_INCOME] ?
|
isDisadvagtaged: properties[constants.IS_GTE_90_EXP_BLD_LOSS_AND_IS_LOW_INCOME] ?
|
||||||
properties[constants.IS_GTE_90_EXP_BLD_LOSS_AND_IS_LOW_INCOME] : null,
|
properties[constants.IS_GTE_90_EXP_BLD_LOSS_AND_IS_LOW_INCOME] : null,
|
||||||
};
|
};
|
||||||
const expPopLoss:indicatorInfo = {
|
const expPopLoss:indicatorInfo = {
|
||||||
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.EXP_POP_LOSS),
|
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.EXP_POP_LOSS),
|
||||||
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.EXP_POP_LOSS),
|
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.EXP_POP_LOSS),
|
||||||
value: properties[constants.EXP_POPULATION_LOSS_PERCENTILE] ?
|
value: properties[constants.EXP_POPULATION_LOSS_PERCENTILE] ?
|
||||||
properties[constants.EXP_POPULATION_LOSS_PERCENTILE] : null,
|
properties[constants.EXP_POPULATION_LOSS_PERCENTILE] : null,
|
||||||
isDisadvagtaged: properties[constants.IS_GTE_90_EXP_POP_LOSS_AND_IS_LOW_INCOME] ?
|
isDisadvagtaged: properties[constants.IS_GTE_90_EXP_POP_LOSS_AND_IS_LOW_INCOME] ?
|
||||||
properties[constants.IS_GTE_90_EXP_POP_LOSS_AND_IS_LOW_INCOME] : null,
|
properties[constants.IS_GTE_90_EXP_POP_LOSS_AND_IS_LOW_INCOME] : null,
|
||||||
};
|
};
|
||||||
const lowInc:indicatorInfo = {
|
const lowInc:indicatorInfo = {
|
||||||
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.LOW_INCOME),
|
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.LOW_INCOME),
|
||||||
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.LOW_INCOME),
|
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.LOW_INCOME),
|
||||||
value: properties[constants.POVERTY_BELOW_200_PERCENTILE] ?
|
value: properties[constants.POVERTY_BELOW_200_PERCENTILE] ?
|
||||||
properties[constants.POVERTY_BELOW_200_PERCENTILE] : null,
|
properties[constants.POVERTY_BELOW_200_PERCENTILE] : null,
|
||||||
isDisadvagtaged: properties[constants.IS_FEDERAL_POVERTY_LEVEL_200] ?
|
isDisadvagtaged: properties[constants.IS_FEDERAL_POVERTY_LEVEL_200] ?
|
||||||
properties[constants.IS_FEDERAL_POVERTY_LEVEL_200] : null,
|
properties[constants.IS_FEDERAL_POVERTY_LEVEL_200] : null,
|
||||||
};
|
};
|
||||||
|
|
||||||
const energyBurden:indicatorInfo = {
|
const energyBurden:indicatorInfo = {
|
||||||
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.ENERGY_BURDEN),
|
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.ENERGY_BURDEN),
|
||||||
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.ENERGY_BURDEN),
|
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.ENERGY_BURDEN),
|
||||||
value: properties[constants.ENERGY_PERCENTILE] ?
|
value: properties[constants.ENERGY_PERCENTILE] ?
|
||||||
properties[constants.ENERGY_PERCENTILE] : null,
|
properties[constants.ENERGY_PERCENTILE] : null,
|
||||||
isDisadvagtaged: properties[constants.IS_GTE_90_ENERGY_BURDEN_AND_IS_LOW_INCOME] ?
|
isDisadvagtaged: properties[constants.IS_GTE_90_ENERGY_BURDEN_AND_IS_LOW_INCOME] ?
|
||||||
properties[constants.IS_GTE_90_ENERGY_BURDEN_AND_IS_LOW_INCOME] : null,
|
properties[constants.IS_GTE_90_ENERGY_BURDEN_AND_IS_LOW_INCOME] : null,
|
||||||
};
|
};
|
||||||
const pm25:indicatorInfo = {
|
const pm25:indicatorInfo = {
|
||||||
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.PM_2_5),
|
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.PM_2_5),
|
||||||
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.PM_2_5),
|
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.PM_2_5),
|
||||||
value: properties[constants.PM25_PERCENTILE] ?
|
value: properties[constants.PM25_PERCENTILE] ?
|
||||||
properties[constants.PM25_PERCENTILE] : null,
|
properties[constants.PM25_PERCENTILE] : null,
|
||||||
isDisadvagtaged: properties[constants.IS_GTE_90_PM25_AND_IS_LOW_INCOME] ?
|
isDisadvagtaged: properties[constants.IS_GTE_90_PM25_AND_IS_LOW_INCOME] ?
|
||||||
properties[constants.IS_GTE_90_PM25_AND_IS_LOW_INCOME] : null,
|
properties[constants.IS_GTE_90_PM25_AND_IS_LOW_INCOME] : null,
|
||||||
};
|
};
|
||||||
|
|
||||||
const dieselPartMatter:indicatorInfo = {
|
const dieselPartMatter:indicatorInfo = {
|
||||||
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.DIESEL_PARTICULATE_MATTER),
|
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.DIESEL_PARTICULATE_MATTER),
|
||||||
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.DIESEL_PARTICULATE_MATTER),
|
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.DIESEL_PARTICULATE_MATTER),
|
||||||
value: properties[constants.DIESEL_MATTER_PERCENTILE] ?
|
value: properties[constants.DIESEL_MATTER_PERCENTILE] ?
|
||||||
properties[constants.DIESEL_MATTER_PERCENTILE] : null,
|
properties[constants.DIESEL_MATTER_PERCENTILE] : null,
|
||||||
isDisadvagtaged: properties[constants.IS_GTE_90_DIESEL_PM_AND_IS_LOW_INCOME] ?
|
isDisadvagtaged: properties[constants.IS_GTE_90_DIESEL_PM_AND_IS_LOW_INCOME] ?
|
||||||
properties[constants.IS_GTE_90_DIESEL_PM_AND_IS_LOW_INCOME] : null,
|
properties[constants.IS_GTE_90_DIESEL_PM_AND_IS_LOW_INCOME] : null,
|
||||||
};
|
};
|
||||||
const trafficVolume:indicatorInfo = {
|
const trafficVolume:indicatorInfo = {
|
||||||
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.TRAFFIC_VOLUME),
|
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.TRAFFIC_VOLUME),
|
||||||
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.TRAFFIC_VOLUME),
|
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.TRAFFIC_VOLUME),
|
||||||
value: properties[constants.TRAFFIC_PERCENTILE] ?
|
value: properties[constants.TRAFFIC_PERCENTILE] ?
|
||||||
properties[constants.TRAFFIC_PERCENTILE] : null,
|
properties[constants.TRAFFIC_PERCENTILE] : null,
|
||||||
isDisadvagtaged: properties[constants.IS_GTE_90_TRAFFIC_PROX_AND_IS_LOW_INCOME] ?
|
isDisadvagtaged: properties[constants.IS_GTE_90_TRAFFIC_PROX_AND_IS_LOW_INCOME] ?
|
||||||
properties[constants.IS_GTE_90_TRAFFIC_PROX_AND_IS_LOW_INCOME] : null,
|
properties[constants.IS_GTE_90_TRAFFIC_PROX_AND_IS_LOW_INCOME] : null,
|
||||||
};
|
};
|
||||||
|
|
||||||
const houseBurden:indicatorInfo = {
|
const houseBurden:indicatorInfo = {
|
||||||
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.HOUSE_BURDEN),
|
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.HOUSE_BURDEN),
|
||||||
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.HOUSE_BURDEN),
|
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.HOUSE_BURDEN),
|
||||||
value: properties[constants.HOUSING_BURDEN_PROPERTY_PERCENTILE] ?
|
value: properties[constants.HOUSING_BURDEN_PROPERTY_PERCENTILE] ?
|
||||||
properties[constants.HOUSING_BURDEN_PROPERTY_PERCENTILE] : null,
|
properties[constants.HOUSING_BURDEN_PROPERTY_PERCENTILE] : null,
|
||||||
isDisadvagtaged: properties[constants.IS_GTE_90_HOUSE_BURDEN_AND_IS_LOW_INCOME] ?
|
isDisadvagtaged: properties[constants.IS_GTE_90_HOUSE_BURDEN_AND_IS_LOW_INCOME] ?
|
||||||
properties[constants.IS_GTE_90_HOUSE_BURDEN_AND_IS_LOW_INCOME] : null,
|
properties[constants.IS_GTE_90_HOUSE_BURDEN_AND_IS_LOW_INCOME] : null,
|
||||||
};
|
};
|
||||||
const leadPaint:indicatorInfo = {
|
const leadPaint:indicatorInfo = {
|
||||||
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.LEAD_PAINT),
|
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.LEAD_PAINT),
|
||||||
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.LEAD_PAINT),
|
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.LEAD_PAINT),
|
||||||
value: properties[constants.LEAD_PAINT_PERCENTILE] ?
|
value: properties[constants.LEAD_PAINT_PERCENTILE] ?
|
||||||
properties[constants.LEAD_PAINT_PERCENTILE] : null,
|
properties[constants.LEAD_PAINT_PERCENTILE] : null,
|
||||||
isDisadvagtaged: properties[constants.IS_GTE_90_LEAD_PAINT_AND_MEDIAN_HOME_VAL_AND_IS_LOW_INCOME] ?
|
isDisadvagtaged: properties[constants.IS_GTE_90_LEAD_PAINT_AND_MEDIAN_HOME_VAL_AND_IS_LOW_INCOME] ?
|
||||||
properties[constants.IS_GTE_90_LEAD_PAINT_AND_MEDIAN_HOME_VAL_AND_IS_LOW_INCOME] : null,
|
properties[constants.IS_GTE_90_LEAD_PAINT_AND_MEDIAN_HOME_VAL_AND_IS_LOW_INCOME] : null,
|
||||||
};
|
};
|
||||||
// const medHomeVal:indicatorInfo = {
|
// const medHomeVal:indicatorInfo = {
|
||||||
// label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.MED_HOME_VAL),
|
// label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.MED_HOME_VAL),
|
||||||
|
@ -136,108 +145,109 @@ const AreaDetail = ({properties}:IAreaDetailProps) => {
|
||||||
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.PROX_HAZ),
|
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.PROX_HAZ),
|
||||||
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.PROX_HAZ),
|
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.PROX_HAZ),
|
||||||
value: properties[constants.PROXIMITY_TSDF_SITES_PERCENTILE] ?
|
value: properties[constants.PROXIMITY_TSDF_SITES_PERCENTILE] ?
|
||||||
properties[constants.PROXIMITY_TSDF_SITES_PERCENTILE] : null,
|
properties[constants.PROXIMITY_TSDF_SITES_PERCENTILE] : null,
|
||||||
isDisadvagtaged: properties[constants.IS_GTE_90_HAZARD_WASTE_AND_IS_LOW_INCOME] ?
|
isDisadvagtaged: properties[constants.IS_GTE_90_HAZARD_WASTE_AND_IS_LOW_INCOME] ?
|
||||||
properties[constants.IS_GTE_90_HAZARD_WASTE_AND_IS_LOW_INCOME] : null,
|
properties[constants.IS_GTE_90_HAZARD_WASTE_AND_IS_LOW_INCOME] : null,
|
||||||
};
|
};
|
||||||
const proxNPL:indicatorInfo = {
|
const proxNPL:indicatorInfo = {
|
||||||
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.PROX_NPL),
|
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.PROX_NPL),
|
||||||
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.PROX_NPL),
|
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.PROX_NPL),
|
||||||
value: properties[constants.PROXIMITY_NPL_SITES_PERCENTILE] ?
|
value: properties[constants.PROXIMITY_NPL_SITES_PERCENTILE] ?
|
||||||
properties[constants.PROXIMITY_NPL_SITES_PERCENTILE] : null,
|
properties[constants.PROXIMITY_NPL_SITES_PERCENTILE] : null,
|
||||||
isDisadvagtaged: properties[constants.IS_GTE_90_SUPERFUND_AND_IS_LOW_INCOME] ?
|
isDisadvagtaged: properties[constants.IS_GTE_90_SUPERFUND_AND_IS_LOW_INCOME] ?
|
||||||
properties[constants.IS_GTE_90_SUPERFUND_AND_IS_LOW_INCOME] : null,
|
properties[constants.IS_GTE_90_SUPERFUND_AND_IS_LOW_INCOME] : null,
|
||||||
};
|
};
|
||||||
const proxRMP:indicatorInfo = {
|
const proxRMP:indicatorInfo = {
|
||||||
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.PROX_RMP),
|
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.PROX_RMP),
|
||||||
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.PROX_RMP),
|
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.PROX_RMP),
|
||||||
value: properties[constants.PROXIMITY_RMP_SITES_PERCENTILE] ?
|
value: properties[constants.PROXIMITY_RMP_SITES_PERCENTILE] ?
|
||||||
properties[constants.PROXIMITY_RMP_SITES_PERCENTILE] : null,
|
properties[constants.PROXIMITY_RMP_SITES_PERCENTILE] : null,
|
||||||
isDisadvagtaged: properties[constants.IS_GTE_90_RMP_AND_IS_LOW_INCOME] ?
|
isDisadvagtaged: properties[constants.IS_GTE_90_RMP_AND_IS_LOW_INCOME] ?
|
||||||
properties[constants.IS_GTE_90_RMP_AND_IS_LOW_INCOME] : null,
|
properties[constants.IS_GTE_90_RMP_AND_IS_LOW_INCOME] : null,
|
||||||
};
|
};
|
||||||
|
|
||||||
const wasteWater:indicatorInfo = {
|
const wasteWater:indicatorInfo = {
|
||||||
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.WASTE_WATER),
|
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.WASTE_WATER),
|
||||||
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.WASTE_WATER),
|
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.WASTE_WATER),
|
||||||
value: properties[constants.WASTEWATER_PERCENTILE] ?
|
value: properties[constants.WASTEWATER_PERCENTILE] ?
|
||||||
properties[constants.WASTEWATER_PERCENTILE] : null,
|
properties[constants.WASTEWATER_PERCENTILE] : null,
|
||||||
isDisadvagtaged: properties[constants.IS_GTE_90_WASTEWATER_AND_IS_LOW_INCOME] ?
|
isDisadvagtaged: properties[constants.IS_GTE_90_WASTEWATER_AND_IS_LOW_INCOME] ?
|
||||||
properties[constants.IS_GTE_90_WASTEWATER_AND_IS_LOW_INCOME] : null,
|
properties[constants.IS_GTE_90_WASTEWATER_AND_IS_LOW_INCOME] : null,
|
||||||
};
|
};
|
||||||
|
|
||||||
const asthma:indicatorInfo = {
|
const asthma:indicatorInfo = {
|
||||||
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.ASTHMA),
|
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.ASTHMA),
|
||||||
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.ASTHMA),
|
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.ASTHMA),
|
||||||
value: properties[constants.ASTHMA_PERCENTILE] ?
|
value: properties[constants.ASTHMA_PERCENTILE] ?
|
||||||
properties[constants.ASTHMA_PERCENTILE] : null,
|
properties[constants.ASTHMA_PERCENTILE] : null,
|
||||||
isDisadvagtaged: properties[constants.IS_GTE_90_ASTHMA_AND_IS_LOW_INCOME] ?
|
isDisadvagtaged: properties[constants.IS_GTE_90_ASTHMA_AND_IS_LOW_INCOME] ?
|
||||||
properties[constants.IS_GTE_90_ASTHMA_AND_IS_LOW_INCOME] : null,
|
properties[constants.IS_GTE_90_ASTHMA_AND_IS_LOW_INCOME] : null,
|
||||||
};
|
};
|
||||||
const diabetes:indicatorInfo = {
|
const diabetes:indicatorInfo = {
|
||||||
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.DIABETES),
|
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.DIABETES),
|
||||||
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.DIABETES),
|
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.DIABETES),
|
||||||
value: properties[constants.DIABETES_PERCENTILE] ?
|
value: properties[constants.DIABETES_PERCENTILE] ?
|
||||||
properties[constants.DIABETES_PERCENTILE] : null,
|
properties[constants.DIABETES_PERCENTILE] : null,
|
||||||
isDisadvagtaged: properties[constants.IS_GTE_90_DIABETES_AND_IS_LOW_INCOME] ?
|
isDisadvagtaged: properties[constants.IS_GTE_90_DIABETES_AND_IS_LOW_INCOME] ?
|
||||||
properties[constants.IS_GTE_90_DIABETES_AND_IS_LOW_INCOME] : null,
|
properties[constants.IS_GTE_90_DIABETES_AND_IS_LOW_INCOME] : null,
|
||||||
};
|
};
|
||||||
const heartDisease:indicatorInfo = {
|
const heartDisease:indicatorInfo = {
|
||||||
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.HEART_DISEASE),
|
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.HEART_DISEASE),
|
||||||
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.HEART_DISEASE),
|
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.HEART_DISEASE),
|
||||||
value: properties[constants.HEART_PERCENTILE] ?
|
value: properties[constants.HEART_PERCENTILE] ?
|
||||||
properties[constants.HEART_PERCENTILE] : null,
|
properties[constants.HEART_PERCENTILE] : null,
|
||||||
isDisadvagtaged: properties[constants.IS_GTE_90_HEART_DISEASE_AND_IS_LOW_INCOME] ?
|
isDisadvagtaged: properties[constants.IS_GTE_90_HEART_DISEASE_AND_IS_LOW_INCOME] ?
|
||||||
properties[constants.IS_GTE_90_HEART_DISEASE_AND_IS_LOW_INCOME] : null,
|
properties[constants.IS_GTE_90_HEART_DISEASE_AND_IS_LOW_INCOME] : null,
|
||||||
};
|
};
|
||||||
const lifeExpect:indicatorInfo = {
|
const lifeExpect:indicatorInfo = {
|
||||||
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.LIFE_EXPECT),
|
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.LIFE_EXPECT),
|
||||||
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.LOW_LIFE_EXPECT),
|
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.LOW_LIFE_EXPECT),
|
||||||
value: properties[constants.LIFE_PERCENTILE] ?
|
value: properties[constants.LIFE_PERCENTILE] ?
|
||||||
properties[constants.LIFE_PERCENTILE] : null,
|
properties[constants.LIFE_PERCENTILE] : null,
|
||||||
isDisadvagtaged: properties[constants.IS_GTE_90_LOW_LIFE_EXP_AND_IS_LOW_INCOME] ?
|
isDisadvagtaged: properties[constants.IS_GTE_90_LOW_LIFE_EXP_AND_IS_LOW_INCOME] ?
|
||||||
properties[constants.IS_GTE_90_LOW_LIFE_EXP_AND_IS_LOW_INCOME] : null,
|
properties[constants.IS_GTE_90_LOW_LIFE_EXP_AND_IS_LOW_INCOME] : null,
|
||||||
};
|
};
|
||||||
|
|
||||||
const lowMedInc:indicatorInfo = {
|
const lowMedInc:indicatorInfo = {
|
||||||
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.LOW_MED_INC),
|
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.LOW_MED_INC),
|
||||||
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.LOW_MED_INCOME),
|
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.LOW_MED_INCOME),
|
||||||
value: properties[constants.LOW_MEDIAN_INCOME_PERCENTILE] ?
|
value: properties[constants.LOW_MEDIAN_INCOME_PERCENTILE] ?
|
||||||
properties[constants.LOW_MEDIAN_INCOME_PERCENTILE] : null,
|
properties[constants.LOW_MEDIAN_INCOME_PERCENTILE] : null,
|
||||||
isDisadvagtaged: properties[constants.IS_GTE_90_LOW_MEDIAN_INCOME_AND_LOW_HIGH_SCHOOL_EDU] ?
|
isDisadvagtaged: properties[constants.IS_GTE_90_LOW_MEDIAN_INCOME_AND_LOW_HIGH_SCHOOL_EDU] ?
|
||||||
properties[constants.IS_GTE_90_LOW_MEDIAN_INCOME_AND_LOW_HIGH_SCHOOL_EDU] : null,
|
properties[constants.IS_GTE_90_LOW_MEDIAN_INCOME_AND_LOW_HIGH_SCHOOL_EDU] : null,
|
||||||
};
|
};
|
||||||
const lingIso:indicatorInfo = {
|
const lingIso:indicatorInfo = {
|
||||||
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.LING_ISO),
|
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.LING_ISO),
|
||||||
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.LING_ISO),
|
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.LING_ISO),
|
||||||
value: properties[constants.LINGUISTIC_ISOLATION_PROPERTY_PERCENTILE] ?
|
value: properties[constants.LINGUISTIC_ISOLATION_PROPERTY_PERCENTILE] ?
|
||||||
properties[constants.LINGUISTIC_ISOLATION_PROPERTY_PERCENTILE] : null,
|
properties[constants.LINGUISTIC_ISOLATION_PROPERTY_PERCENTILE] : null,
|
||||||
isDisadvagtaged: properties[constants.IS_GTE_90_LINGUISITIC_ISO_AND_IS_LOW_INCOME] ?
|
isDisadvagtaged: properties[constants.IS_GTE_90_LINGUISITIC_ISO_AND_IS_LOW_INCOME] ?
|
||||||
properties[constants.IS_GTE_90_LINGUISITIC_ISO_AND_IS_LOW_INCOME] : null,
|
properties[constants.IS_GTE_90_LINGUISITIC_ISO_AND_IS_LOW_INCOME] : null,
|
||||||
};
|
};
|
||||||
const unemploy:indicatorInfo = {
|
const unemploy:indicatorInfo = {
|
||||||
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.UNEMPLOY),
|
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.UNEMPLOY),
|
||||||
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.UNEMPLOY),
|
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.UNEMPLOY),
|
||||||
value: properties[constants.UNEMPLOYMENT_PROPERTY_PERCENTILE] ?
|
value: properties[constants.UNEMPLOYMENT_PROPERTY_PERCENTILE] ?
|
||||||
properties[constants.UNEMPLOYMENT_PROPERTY_PERCENTILE] : null,
|
properties[constants.UNEMPLOYMENT_PROPERTY_PERCENTILE] : null,
|
||||||
isDisadvagtaged: properties[constants.IS_GTE_90_UNEMPLOYMENT_AND_LOW_HIGH_SCHOOL_EDU] ?
|
isDisadvagtaged: properties[constants.IS_GTE_90_UNEMPLOYMENT_AND_LOW_HIGH_SCHOOL_EDU] ?
|
||||||
properties[constants.IS_GTE_90_UNEMPLOYMENT_AND_LOW_HIGH_SCHOOL_EDU] : null,
|
properties[constants.IS_GTE_90_UNEMPLOYMENT_AND_LOW_HIGH_SCHOOL_EDU] : null,
|
||||||
};
|
};
|
||||||
const poverty:indicatorInfo = {
|
const poverty:indicatorInfo = {
|
||||||
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.POVERTY),
|
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.POVERTY),
|
||||||
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.POVERTY),
|
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.POVERTY),
|
||||||
value: properties[constants.POVERTY_PROPERTY_PERCENTILE] ?
|
value: properties[constants.POVERTY_PROPERTY_PERCENTILE] ?
|
||||||
properties[constants.POVERTY_PROPERTY_PERCENTILE] : null,
|
properties[constants.POVERTY_PROPERTY_PERCENTILE] : null,
|
||||||
isDisadvagtaged: properties[constants.IS_GTE_90_BELOW_100_POVERTY_AND_LOW_HIGH_SCHOOL_EDU] ?
|
isDisadvagtaged: properties[constants.IS_GTE_90_BELOW_100_POVERTY_AND_LOW_HIGH_SCHOOL_EDU] ?
|
||||||
properties[constants.IS_GTE_90_BELOW_100_POVERTY_AND_LOW_HIGH_SCHOOL_EDU] : null,
|
properties[constants.IS_GTE_90_BELOW_100_POVERTY_AND_LOW_HIGH_SCHOOL_EDU] : null,
|
||||||
};
|
};
|
||||||
const highSchool:indicatorInfo = {
|
const highSchool:indicatorInfo = {
|
||||||
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.HIGH_SCL),
|
label: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATORS.HIGH_SCL),
|
||||||
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.HIGH_SKL),
|
description: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_INDICATOR_DESCRIPTION.HIGH_SKL),
|
||||||
value: properties[constants.HIGH_SCHOOL_PROPERTY_PERCENTILE] ?
|
value: properties[constants.HIGH_SCHOOL_PROPERTY_PERCENTILE] ?
|
||||||
properties[constants.HIGH_SCHOOL_PROPERTY_PERCENTILE] : null,
|
properties[constants.HIGH_SCHOOL_PROPERTY_PERCENTILE] : null,
|
||||||
isDisadvagtaged: properties[constants.IS_GTE_90_UNEMPLOYMENT_AND_LOW_HIGH_SCHOOL_EDU] ?
|
isDisadvagtaged: properties[constants.IS_GTE_90_UNEMPLOYMENT_AND_LOW_HIGH_SCHOOL_EDU] ?
|
||||||
properties[constants.IS_GTE_90_UNEMPLOYMENT_AND_LOW_HIGH_SCHOOL_EDU] : null,
|
properties[constants.IS_GTE_90_UNEMPLOYMENT_AND_LOW_HIGH_SCHOOL_EDU] : null,
|
||||||
|
isPercent: true,
|
||||||
};
|
};
|
||||||
|
|
||||||
// Aggregate indicators based on categories
|
// Aggregate indicators based on categories
|
||||||
|
@ -247,56 +257,56 @@ const AreaDetail = ({properties}:IAreaDetailProps) => {
|
||||||
titleText: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_CATEGORY.CLIMATE),
|
titleText: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_CATEGORY.CLIMATE),
|
||||||
indicators: [expAgLoss, expBldLoss, expPopLoss, lowInc],
|
indicators: [expAgLoss, expBldLoss, expPopLoss, lowInc],
|
||||||
isDisadvagtaged: properties[constants.IS_CLIMATE_FACTOR_DISADVANTAGED_L] ?
|
isDisadvagtaged: properties[constants.IS_CLIMATE_FACTOR_DISADVANTAGED_L] ?
|
||||||
properties[constants.IS_CLIMATE_FACTOR_DISADVANTAGED_L] : null,
|
properties[constants.IS_CLIMATE_FACTOR_DISADVANTAGED_L] : null,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'clean-energy',
|
id: 'clean-energy',
|
||||||
titleText: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_CATEGORY.CLEAN_ENERGY),
|
titleText: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_CATEGORY.CLEAN_ENERGY),
|
||||||
indicators: [energyBurden, pm25, lowInc],
|
indicators: [energyBurden, pm25, lowInc],
|
||||||
isDisadvagtaged: properties[constants.IS_ENERGY_FACTOR_DISADVANTAGED_L] ?
|
isDisadvagtaged: properties[constants.IS_ENERGY_FACTOR_DISADVANTAGED_L] ?
|
||||||
properties[constants.IS_ENERGY_FACTOR_DISADVANTAGED_L] : null,
|
properties[constants.IS_ENERGY_FACTOR_DISADVANTAGED_L] : null,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'clean-transport',
|
id: 'clean-transport',
|
||||||
titleText: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_CATEGORY.CLEAN_TRANSPORT),
|
titleText: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_CATEGORY.CLEAN_TRANSPORT),
|
||||||
indicators: [dieselPartMatter, trafficVolume, lowInc],
|
indicators: [dieselPartMatter, trafficVolume, lowInc],
|
||||||
isDisadvagtaged: properties[constants.IS_TRANSPORT_FACTOR_DISADVANTAGED_L] ?
|
isDisadvagtaged: properties[constants.IS_TRANSPORT_FACTOR_DISADVANTAGED_L] ?
|
||||||
properties[constants.IS_TRANSPORT_FACTOR_DISADVANTAGED_L] : null,
|
properties[constants.IS_TRANSPORT_FACTOR_DISADVANTAGED_L] : null,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'sustain-house',
|
id: 'sustain-house',
|
||||||
titleText: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_CATEGORY.SUSTAIN_HOUSE),
|
titleText: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_CATEGORY.SUSTAIN_HOUSE),
|
||||||
indicators: [houseBurden, leadPaint, lowInc],
|
indicators: [houseBurden, leadPaint, lowInc],
|
||||||
isDisadvagtaged: properties[constants.IS_HOUSING_FACTOR_DISADVANTAGED_L] ?
|
isDisadvagtaged: properties[constants.IS_HOUSING_FACTOR_DISADVANTAGED_L] ?
|
||||||
properties[constants.IS_HOUSING_FACTOR_DISADVANTAGED_L] : null,
|
properties[constants.IS_HOUSING_FACTOR_DISADVANTAGED_L] : null,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'leg-pollute',
|
id: 'leg-pollute',
|
||||||
titleText: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_CATEGORY.LEG_POLLUTE),
|
titleText: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_CATEGORY.LEG_POLLUTE),
|
||||||
indicators: [proxHaz, proxNPL, proxRMP, lowInc],
|
indicators: [proxHaz, proxNPL, proxRMP, lowInc],
|
||||||
isDisadvagtaged: properties[constants.IS_POLLUTION_FACTOR_DISADVANTAGED_L] ?
|
isDisadvagtaged: properties[constants.IS_POLLUTION_FACTOR_DISADVANTAGED_L] ?
|
||||||
properties[constants.IS_POLLUTION_FACTOR_DISADVANTAGED_L] : null,
|
properties[constants.IS_POLLUTION_FACTOR_DISADVANTAGED_L] : null,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'clean-water',
|
id: 'clean-water',
|
||||||
titleText: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_CATEGORY.CLEAN_WATER),
|
titleText: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_CATEGORY.CLEAN_WATER),
|
||||||
indicators: [wasteWater, lowInc],
|
indicators: [wasteWater, lowInc],
|
||||||
isDisadvagtaged: properties[constants.IS_WATER_FACTOR_DISADVANTAGED_L] ?
|
isDisadvagtaged: properties[constants.IS_WATER_FACTOR_DISADVANTAGED_L] ?
|
||||||
properties[constants.IS_WATER_FACTOR_DISADVANTAGED_L] : null,
|
properties[constants.IS_WATER_FACTOR_DISADVANTAGED_L] : null,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'health-burdens',
|
id: 'health-burdens',
|
||||||
titleText: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_CATEGORY.HEALTH_BURDEN),
|
titleText: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_CATEGORY.HEALTH_BURDEN),
|
||||||
indicators: [asthma, diabetes, heartDisease, lifeExpect, lowInc],
|
indicators: [asthma, diabetes, heartDisease, lifeExpect, lowInc],
|
||||||
isDisadvagtaged: properties[constants.IS_HEALTH_FACTOR_DISADVANTAGED_L] ?
|
isDisadvagtaged: properties[constants.IS_HEALTH_FACTOR_DISADVANTAGED_L] ?
|
||||||
properties[constants.IS_HEALTH_FACTOR_DISADVANTAGED_L] : null,
|
properties[constants.IS_HEALTH_FACTOR_DISADVANTAGED_L] : null,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'work-dev',
|
id: 'work-dev',
|
||||||
titleText: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_CATEGORY.WORK_DEV),
|
titleText: intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_CATEGORY.WORK_DEV),
|
||||||
indicators: [lowMedInc, lingIso, unemploy, poverty, highSchool],
|
indicators: [lowMedInc, lingIso, unemploy, poverty, highSchool],
|
||||||
isDisadvagtaged: properties[constants.IS_WORKFORCE_FACTOR_DISADVANTAGED_L] ?
|
isDisadvagtaged: properties[constants.IS_WORKFORCE_FACTOR_DISADVANTAGED_L] ?
|
||||||
properties[constants.IS_WORKFORCE_FACTOR_DISADVANTAGED_L] : null,
|
properties[constants.IS_WORKFORCE_FACTOR_DISADVANTAGED_L] : null,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -308,6 +318,13 @@ const AreaDetail = ({properties}:IAreaDetailProps) => {
|
||||||
title: <Category name={category.titleText} isDisadvantaged={category.isDisadvagtaged}/>,
|
title: <Category name={category.titleText} isDisadvantaged={category.isDisadvagtaged}/>,
|
||||||
content: (
|
content: (
|
||||||
<>
|
<>
|
||||||
|
{/* Category Header */}
|
||||||
|
<div className={styles.categoryHeader}>
|
||||||
|
<div>{intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_CATEGORY.INDICATOR)}</div>
|
||||||
|
<div>{intl.formatMessage(EXPLORE_COPY.SIDE_PANEL_CATEGORY.PERCENTILE)}</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Category Indicators */}
|
||||||
{category.indicators.map((indicator:any, index:number) => {
|
{category.indicators.map((indicator:any, index:number) => {
|
||||||
return <Indicator key={`ind${index}`} indicator={indicator}/>;
|
return <Indicator key={`ind${index}`} indicator={indicator}/>;
|
||||||
})}
|
})}
|
||||||
|
|
|
@ -87,6 +87,14 @@ exports[`rendering of the AreaDetail checks if various text fields are visible 1
|
||||||
hidden=""
|
hidden=""
|
||||||
id="climate-change"
|
id="climate-change"
|
||||||
>
|
>
|
||||||
|
<div>
|
||||||
|
<div>
|
||||||
|
Indicator
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
Percentile (0-100)
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<li
|
<li
|
||||||
data-cy="indicatorBox"
|
data-cy="indicatorBox"
|
||||||
>
|
>
|
||||||
|
@ -190,6 +198,14 @@ exports[`rendering of the AreaDetail checks if various text fields are visible 1
|
||||||
hidden=""
|
hidden=""
|
||||||
id="clean-energy"
|
id="clean-energy"
|
||||||
>
|
>
|
||||||
|
<div>
|
||||||
|
<div>
|
||||||
|
Indicator
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
Percentile (0-100)
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<li
|
<li
|
||||||
data-cy="indicatorBox"
|
data-cy="indicatorBox"
|
||||||
>
|
>
|
||||||
|
@ -273,6 +289,14 @@ exports[`rendering of the AreaDetail checks if various text fields are visible 1
|
||||||
hidden=""
|
hidden=""
|
||||||
id="clean-transport"
|
id="clean-transport"
|
||||||
>
|
>
|
||||||
|
<div>
|
||||||
|
<div>
|
||||||
|
Indicator
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
Percentile (0-100)
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<li
|
<li
|
||||||
data-cy="indicatorBox"
|
data-cy="indicatorBox"
|
||||||
>
|
>
|
||||||
|
@ -356,6 +380,14 @@ exports[`rendering of the AreaDetail checks if various text fields are visible 1
|
||||||
hidden=""
|
hidden=""
|
||||||
id="sustain-house"
|
id="sustain-house"
|
||||||
>
|
>
|
||||||
|
<div>
|
||||||
|
<div>
|
||||||
|
Indicator
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
Percentile (0-100)
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<li
|
<li
|
||||||
data-cy="indicatorBox"
|
data-cy="indicatorBox"
|
||||||
>
|
>
|
||||||
|
@ -441,6 +473,14 @@ exports[`rendering of the AreaDetail checks if various text fields are visible 1
|
||||||
hidden=""
|
hidden=""
|
||||||
id="leg-pollute"
|
id="leg-pollute"
|
||||||
>
|
>
|
||||||
|
<div>
|
||||||
|
<div>
|
||||||
|
Indicator
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
Percentile (0-100)
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<li
|
<li
|
||||||
data-cy="indicatorBox"
|
data-cy="indicatorBox"
|
||||||
>
|
>
|
||||||
|
@ -542,6 +582,14 @@ exports[`rendering of the AreaDetail checks if various text fields are visible 1
|
||||||
hidden=""
|
hidden=""
|
||||||
id="clean-water"
|
id="clean-water"
|
||||||
>
|
>
|
||||||
|
<div>
|
||||||
|
<div>
|
||||||
|
Indicator
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
Percentile (0-100)
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<li
|
<li
|
||||||
data-cy="indicatorBox"
|
data-cy="indicatorBox"
|
||||||
>
|
>
|
||||||
|
@ -607,6 +655,14 @@ exports[`rendering of the AreaDetail checks if various text fields are visible 1
|
||||||
hidden=""
|
hidden=""
|
||||||
id="health-burdens"
|
id="health-burdens"
|
||||||
>
|
>
|
||||||
|
<div>
|
||||||
|
<div>
|
||||||
|
Indicator
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
Percentile (0-100)
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<li
|
<li
|
||||||
data-cy="indicatorBox"
|
data-cy="indicatorBox"
|
||||||
>
|
>
|
||||||
|
@ -731,6 +787,14 @@ exports[`rendering of the AreaDetail checks if various text fields are visible 1
|
||||||
hidden=""
|
hidden=""
|
||||||
id="work-dev"
|
id="work-dev"
|
||||||
>
|
>
|
||||||
|
<div>
|
||||||
|
<div>
|
||||||
|
Indicator
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
Percentile (0-100)
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<li
|
<li
|
||||||
data-cy="indicatorBox"
|
data-cy="indicatorBox"
|
||||||
>
|
>
|
||||||
|
@ -822,15 +886,16 @@ exports[`rendering of the AreaDetail checks if various text fields are visible 1
|
||||||
High school degree achievement rate
|
High school degree achievement rate
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
Percent of people ages 25 years or older whose education level is less than a high school diploma
|
Percent (not a percentile) of people ages 25 years or older whose education level is less than a
|
||||||
|
high school diploma
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
N/A
|
N/A
|
||||||
<sup>
|
<span>
|
||||||
<span />
|
%
|
||||||
</sup>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
|
|
|
@ -10,8 +10,8 @@ exports[`rendering of the BetaBanner checks if component renders 1`] = `
|
||||||
This is a beta site.
|
This is a beta site.
|
||||||
</span>
|
</span>
|
||||||
<span>
|
<span>
|
||||||
It is an early, in-progress version of the tool with limited datasets
|
It is an early, in-progress version of the tool with limited datasets that will
|
||||||
that will be continuously updated.
|
be regularly updated.
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -176,7 +176,7 @@ exports[`rendering of the Categories checks if component renders 1`] = `
|
||||||
low median home value
|
low median home value
|
||||||
</a>
|
</a>
|
||||||
is at or less than
|
is at or less than
|
||||||
90th percentile OR at or above the 10th percentile for the
|
90th percentile OR at or above the 90th percentile for the
|
||||||
<a
|
<a
|
||||||
href="#house-burden"
|
href="#house-burden"
|
||||||
>
|
>
|
||||||
|
|
|
@ -25,9 +25,7 @@ const DatasetCard = ({datasetCardProps}:IDatasetCardProps) => {
|
||||||
<span className={styles.datasetCardLabels}>
|
<span className={styles.datasetCardLabels}>
|
||||||
{intl.formatMessage(METHODOLOGY_COPY.DATASET_CARD_LABELS.RESP_PARTY)}
|
{intl.formatMessage(METHODOLOGY_COPY.DATASET_CARD_LABELS.RESP_PARTY)}
|
||||||
</span>
|
</span>
|
||||||
<a href={datasetCardProps.dataSourceURL} target={'_blank'} rel="noreferrer">
|
{datasetCardProps.responsibleParty}
|
||||||
{datasetCardProps.respPartyLabel}
|
|
||||||
</a>
|
|
||||||
</li>
|
</li>
|
||||||
<li className={styles.datasetCardListItem}>
|
<li className={styles.datasetCardListItem}>
|
||||||
<span className={styles.datasetCardLabels}>
|
<span className={styles.datasetCardLabels}>
|
||||||
|
|
|
@ -10,9 +10,9 @@ exports[`rendering of indicator dataset card checks if component renders 1`] = `
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
Percent of a block group's population in households where household income is at or below
|
Percent of a census tract's population in households where household income is at or below
|
||||||
200% of the federal poverty level.
|
200% of the federal poverty level.
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -24,7 +24,7 @@ exports[`rendering of indicator dataset card checks if component renders 1`] = `
|
||||||
rel="noreferrer"
|
rel="noreferrer"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>
|
>
|
||||||
Census's American Community Survey.
|
Census's American Community Survey
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
|
|
@ -40,9 +40,9 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
Percent of a block group's population in households where household income is at or below
|
Percent of a census tract's population in households where household income is at or below
|
||||||
200% of the federal poverty level.
|
200% of the federal poverty level.
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -54,7 +54,7 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
rel="noreferrer"
|
rel="noreferrer"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>
|
>
|
||||||
Census's American Community Survey.
|
Census's American Community Survey
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
@ -79,12 +79,12 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
Percent of agriculture value at risk from losses due to natural hazards. Calculated by dividing
|
Percent of agriculture value at risk from losses due to natural hazards. Calculated by dividing
|
||||||
the agriculture value at risk in a census tract by the total agriculture value in that census
|
the agriculture value at risk in a census tract by the total agriculture value in that census
|
||||||
tract. Fourteen natural hazards that have some link to climate change include: avalanche,
|
tract. Fourteen natural hazards that have some link to climate change include: avalanche,
|
||||||
coastal flooding, cold wave, drought, hail, heat wave, hurricane, ice storm, landslide,
|
coastal flooding, cold wave, drought, hail, heat wave, hurricane, ice storm, landslide,
|
||||||
riverine flooding, strong wind, tornado, wildfire, and winter weather.
|
riverine flooding, strong wind, tornado, wildfire, and winter weather.
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -121,12 +121,12 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
Percent of building value at risk from losses due to natural hazards. Calculated by dividing the
|
Percent of building value at risk from losses due to natural hazards. Calculated by dividing the
|
||||||
building value at risk in a census tract by the total building value in that census tract.
|
building value at risk in a census tract by the total building value in that census tract.
|
||||||
Fourteen natural hazards that have some link to climate change include: avalanche, coastal flooding,
|
Fourteen natural hazards that have some link to climate change include: avalanche,
|
||||||
cold wave, drought, hail, heat wave, hurricane, ice storm, landslide, riverine flooding, strong
|
coastal flooding, cold wave, drought, hail, heat wave, hurricane, ice storm, landslide,
|
||||||
wind, tornado, wildfire, and winter weather.
|
riverine flooding, strong wind, tornado, wildfire, and winter weather.
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -163,19 +163,18 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
Rate relative to the population in fatalities and injuries due to natural hazards each year.
|
Rate relative to the population in fatalities and injuries due to natural hazards each year.
|
||||||
Fourteen natural hazards that have some link to climate change include: avalanche, coastal
|
Fourteen natural hazards that have some link to climate change include: avalanche, coastal
|
||||||
flooding, cold wave, drought, hail, heat wave, hurricane, ice storm, landslide, riverine
|
flooding, cold wave, drought, hail, heat wave, hurricane, ice storm, landslide, riverine
|
||||||
flooding, strong wind, tornado, wildfire, and winter weather.
|
flooding, strong wind, tornado, wildfire, and winter weather.
|
||||||
Population loss is defined as the Spatial Hazard Events and Losses or National Centers
|
Population loss is defined as the Spatial Hazard Events and Losses or National Centers
|
||||||
for Environmental Information’s (NCEI) reported number of fatalities and injuries caused by the
|
for Environmental Information’s (NCEI) reported number of fatalities and injuries caused by the
|
||||||
hazard occurrence. To combine fatalities and injuries for the computation of population loss value,
|
hazard occurrence. To combine fatalities and injuries for the computation of population loss value,
|
||||||
an injury is counted as one-tenth (1/10) of a fatality. The NCEI Storm Events Database
|
an injury is counted as one-tenth (1/10) of a fatality. The NCEI Storm Events Database
|
||||||
classifies injuries and fatalities as direct or indirect. Both direct and indirect injuries
|
classifies injuries and fatalities as direct or indirect. Both direct and indirect injuries
|
||||||
and fatalities are counted as population loss. This total number of injuries and fatalities
|
and fatalities are counted as population loss. This total number of injuries and fatalities
|
||||||
is then divided by the population in the census tract to get a per-capita rate of population risk.
|
is then divided by the population in the census tract to get a per-capita rate of population risk.
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -247,8 +246,9 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
PM2.5 in the air
|
PM2.5 in the air
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
Fine inhalable particles, with diameters that are generally
|
|
||||||
2.5 micrometers and smaller.
|
Fine inhalable particles, with diameters that are generally 2.5 micrometers and smaller.
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -260,8 +260,11 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
rel="noreferrer"
|
rel="noreferrer"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>
|
>
|
||||||
Environmental Protection Agency (EPA) Office of Air
|
|
||||||
and Radiation (OAR) fusion of model and monitor data as compiled by EPA's EJSCREEN
|
Environmental Protection Agency (EPA) Office of Air and Radiation (OAR) fusion of model and monitor
|
||||||
|
data as compiled by EPA's EJSCREEN, sourced from EPA National Air Toxics Assessment (NATA), 2017
|
||||||
|
U.S. Department of Transportation (DOT) traffic data
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
@ -285,7 +288,9 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
Diesel particulate matter exposure
|
Diesel particulate matter exposure
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
Mixture of particles that is part of diesel exhaust in the air.
|
|
||||||
|
Mixture of particles that is part of diesel exhaust in the air.
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -297,8 +302,10 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
rel="noreferrer"
|
rel="noreferrer"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>
|
>
|
||||||
Environmental Protection Agency (EPA) National Air Toxics Assessment (NATA)
|
|
||||||
as compiled by EPA's EJSCREEN
|
Environmental Protection Agency (EPA) National Air Toxics Assessment (NATA)
|
||||||
|
as compiled by EPA's EJSCREEN
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
@ -322,8 +329,10 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
Traffic proximity and volume
|
Traffic proximity and volume
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
Count of vehicles (average annual daily traffic) at major roads
|
|
||||||
within 500 meters, divided by distance in meters (not km).
|
Count of vehicles (average annual daily traffic) at major roads
|
||||||
|
within 500 meters, divided by distance in meters (not km).
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -335,7 +344,9 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
rel="noreferrer"
|
rel="noreferrer"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>
|
>
|
||||||
Department of Transportation (DOT) traffic data as compiled by EPA's EJSCREEN
|
|
||||||
|
Department of Transportation (DOT) traffic data as compiled by EPA's EJSCREEN
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
@ -360,9 +371,9 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
The percent of households in a census tract that are both earning less than 80% of HUD Area Median
|
The percent of households in a census tract that are both earning less than 80% of HUD Area Median
|
||||||
Family Income by county and are paying greater than 30% of their income to housing costs.
|
Family Income by county and are paying greater than 30% of their income to housing costs.
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -374,8 +385,10 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
rel="noreferrer"
|
rel="noreferrer"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>
|
>
|
||||||
Department of Housing & Urban Development’s
|
|
||||||
(HUD) Comprehensive Housing Affordability Strategy dataset
|
Department of Housing & Urban Development’s
|
||||||
|
(HUD) Comprehensive Housing Affordability Strategy dataset
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
@ -400,8 +413,9 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
Percent of housing units built pre-1960, used as an indicator of potential lead paint exposure in
|
Percent of housing units built pre-1960, used as an indicator of potential lead paint exposure in
|
||||||
tracts with median home values less than 90th percentile
|
tracts with median home values less than 90th percentile
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -437,7 +451,9 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
Low median home value
|
Low median home value
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
Median home value of owner-occupied housing units in the census tract.
|
|
||||||
|
Median home value of owner-occupied housing units in the census tract.
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -474,9 +490,9 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
Count of hazardous waste facilities (Treatment, Storage, and Disposal Facilities and Large
|
Count of hazardous waste facilities (Treatment, Storage, and Disposal Facilities and Large
|
||||||
Quantity Generators) within 5 km (or nearest beyond 5 km), each divided by distance in kilometers.
|
Quantity Generators) within 5 km (or nearest beyond 5 km), each divided by distance in kilometers.
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -489,16 +505,16 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>
|
>
|
||||||
|
|
||||||
Environmental Protection Agency (EPA) Treatment Storage, and Disposal Facilities
|
Environmental Protection Agency (EPA) Treatment Storage, and Disposal Facilities
|
||||||
(TSDF) data calculated from EPA RCRA info database as compiled by EPA’s EJSCREEN
|
(TSDF) data calculated from EPA RCRA info database as compiled by EPA’s EJSCREEN
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<span>
|
<span>
|
||||||
Date range:
|
Date range:
|
||||||
</span>
|
</span>
|
||||||
2015-2020
|
2020
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<span>
|
<span>
|
||||||
|
@ -516,8 +532,9 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
Count of proposed or listed NPL - also known as superfund - sites within 5 km (or nearest one
|
Count of proposed or listed NPL - also known as superfund - sites within 5 km (or nearest one
|
||||||
beyond 5 km), each divided by distance in kilometers.
|
beyond 5 km), each divided by distance in kilometers.
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -529,7 +546,9 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
rel="noreferrer"
|
rel="noreferrer"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>
|
>
|
||||||
Environmental Protection Agency (EPA) CERCLIS database as compiled by EPA’s EJSCREEN
|
|
||||||
|
Environmental Protection Agency (EPA) CERCLIS database as compiled by EPA’s EJSCREEN
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
@ -554,8 +573,9 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
Count of RMP (potential chemical accident management plan) facilities within 5 km (or nearest
|
Count of RMP (potential chemical accident management plan) facilities within 5 km (or nearest
|
||||||
one beyond 5 km), each divided by distance in kilometers.
|
one beyond 5 km), each divided by distance in kilometers.
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -567,7 +587,9 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
rel="noreferrer"
|
rel="noreferrer"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>
|
>
|
||||||
Environmental Protection Agency (EPA) RMP database as compiled by EPA’s EJSCREEN
|
|
||||||
|
Environmental Protection Agency (EPA) RMP database as compiled by EPA’s EJSCREEN
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
@ -580,7 +602,7 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
<span>
|
<span>
|
||||||
Used in:
|
Used in:
|
||||||
</span>
|
</span>
|
||||||
Affordable and sustainable housing methodology
|
Reduction and remediation of legacy pollution methodology
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
@ -591,8 +613,10 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
Wastewater discharge
|
Wastewater discharge
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
Risk-Screening Environmental Indicators (RSEI) modeled Toxic Concentrations at
|
|
||||||
stream segments within 500 meters, divided by distance in kilometers (km).
|
Risk-Screening Environmental Indicators (RSEI) modeled Toxic Concentrations at
|
||||||
|
stream segments within 500 meters, divided by distance in kilometers (km).
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -604,8 +628,10 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
rel="noreferrer"
|
rel="noreferrer"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>
|
>
|
||||||
Environmental Protection Agency (EPA) Risk-Screening
|
|
||||||
Environmental Indicators (RSEI) Model as compiled by EPA's EJSCREEN
|
Environmental Protection Agency (EPA) Risk-Screening
|
||||||
|
Environmental Indicators (RSEI) Model as compiled by EPA's EJSCREEN
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
@ -629,10 +655,11 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
Asthma
|
Asthma
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
Weighted percent of people who answer “yes” both
|
|
||||||
to both of the following questions: “Have you ever been told by a doctor,
|
Weighted percent of people who answer “yes” to both of the following questions: “Have you ever
|
||||||
nurse, or other health professional that you have asthma?” and the question
|
been told by a doctor, nurse, or other health professional that you have asthma?” and the question
|
||||||
“Do you still have asthma?”
|
“Do you still have asthma?”
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -644,7 +671,9 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
rel="noreferrer"
|
rel="noreferrer"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>
|
>
|
||||||
Centers for Disease Control and Prevention (CDC) PLACES
|
|
||||||
|
Centers for Disease Control and Prevention (CDC) PLACES
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
@ -668,9 +697,11 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
Diabetes
|
Diabetes
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
Weighted percent of people ages 18 years and older who report having ever been
|
|
||||||
told by a doctor, nurse, or other health professionals that they have
|
Weighted percent of people ages 18 years and older who report having ever been
|
||||||
diabetes other than diabetes during pregnancy.
|
told by a doctor, nurse, or other health professionals that they have
|
||||||
|
diabetes other than diabetes during pregnancy.
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -682,7 +713,9 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
rel="noreferrer"
|
rel="noreferrer"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>
|
>
|
||||||
Centers for Disease Control and Prevention (CDC) PLACES
|
|
||||||
|
Centers for Disease Control and Prevention (CDC) PLACES
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
@ -706,9 +739,11 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
Heart disease
|
Heart disease
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
Weighted percent of people ages 18 years and older who report ever having been told
|
|
||||||
by a doctor, nurse, or other health professionals that they had angina or
|
Weighted percent of people ages 18 years and older who report ever having been told
|
||||||
coronary heart disease.
|
by a doctor, nurse, or other health professionals that they had angina or
|
||||||
|
coronary heart disease.
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -720,7 +755,9 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
rel="noreferrer"
|
rel="noreferrer"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>
|
>
|
||||||
Centers for Disease Control and Prevention (CDC) PLACES
|
|
||||||
|
Centers for Disease Control and Prevention (CDC) PLACES
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
@ -745,13 +782,22 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
Average number of years of life a person who has attained a given age can expect to live.
|
Average number of years of life a person who has attained a given age can expect to live.
|
||||||
Note: Unlike most of the other datasets, high values of this indicator indicate low burdens.
|
|
||||||
For percentile calculations, the percentile is calculated in reverse order, so that the tract with
|
<p>
|
||||||
the highest median income relative to area median income (lowest burden on this measure) is at the
|
<strong>
|
||||||
0th percentile, and the tract with the lowest median income relative to area median income
|
Note:
|
||||||
(highest burden on this measure) is at the 100th percentile.
|
</strong>
|
||||||
|
|
||||||
|
Unlike most of the other datasets, high values of this indicator indicate low burdens.
|
||||||
|
For percentile calculations, the percentile is calculated in reverse order, so that the tract with
|
||||||
|
the highest median income relative to area median income (lowest burden on this measure) is at the
|
||||||
|
0th percentile, and the tract with the lowest median income relative to area median income
|
||||||
|
(highest burden on this measure) is at the 100th percentile.
|
||||||
|
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -763,7 +809,9 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
rel="noreferrer"
|
rel="noreferrer"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>
|
>
|
||||||
CDC’s U.S. Small-area Life Expectancy Estimates Project (USALEEP)
|
|
||||||
|
CDC’s U.S. Small-area Life Expectancy Estimates Project (USALEEP)
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
@ -787,7 +835,9 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
Low median Income
|
Low median Income
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
Median income of the census tract calculated as a percent of the area’s median income.
|
|
||||||
|
Median income of the census tract calculated as a percent of the area’s median income.
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -812,7 +862,7 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
<span>
|
<span>
|
||||||
Used in:
|
Used in:
|
||||||
</span>
|
</span>
|
||||||
Training and workforce development
|
Training and workforce development methodology
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
@ -824,8 +874,8 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
The percent of limited speaking households, which are households where no one over age 14 speaks English well.
|
The percent of limited speaking households, which are households where no one over age 14 speaks English well.
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -850,7 +900,7 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
<span>
|
<span>
|
||||||
Used in:
|
Used in:
|
||||||
</span>
|
</span>
|
||||||
Training and workforce development
|
Training and workforce development methodology
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
@ -861,7 +911,9 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
Unemployment
|
Unemployment
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
Number of unemployed people as a percentage of the civilian labor force
|
|
||||||
|
Number of unemployed people as a percentage of the civilian labor force
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -886,7 +938,7 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
<span>
|
<span>
|
||||||
Used in:
|
Used in:
|
||||||
</span>
|
</span>
|
||||||
Training and workforce development
|
Training and workforce development methodology
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
@ -897,7 +949,10 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
Poverty
|
Poverty
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
Percent of a tract's population in households where the household income is at or below 100% of the federal poverty level.
|
|
||||||
|
Percent of a tract's population in households where the household income is at or below 100% of
|
||||||
|
the federal poverty level.
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -922,7 +977,7 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
<span>
|
<span>
|
||||||
Used in:
|
Used in:
|
||||||
</span>
|
</span>
|
||||||
Training and workforce development
|
Training and workforce development methodology
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
@ -933,8 +988,10 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
High school degree achievement rate
|
High school degree achievement rate
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
Percent of people ages 25 years or older in a census tract whose
|
|
||||||
education level is less than a high school diploma.
|
Percent (not percentile) of people ages 25 years or older in a census tract whose
|
||||||
|
education level is less than a high school diploma.
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -959,7 +1016,7 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
<span>
|
<span>
|
||||||
Used in:
|
Used in:
|
||||||
</span>
|
</span>
|
||||||
Training and workforce development
|
Training and workforce development methodology
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -43,9 +43,12 @@ const Indicator = ({indicator}:IIndicator) => {
|
||||||
</div>
|
</div>
|
||||||
<div className={styles.indicatorValue}>
|
<div className={styles.indicatorValue}>
|
||||||
{readablePercentile(indicator.value)}
|
{readablePercentile(indicator.value)}
|
||||||
<sup className={styles.indicatorSuperscript}><span>
|
{indicator.isPercent ?
|
||||||
{getSuperscriptOrdinal(readablePercentile(indicator.value))}
|
<span>{`%`}</span> :
|
||||||
</span></sup>
|
<sup className={styles.indicatorSuperscript}>
|
||||||
|
<span>{getSuperscriptOrdinal(readablePercentile(indicator.value))}</span>
|
||||||
|
</sup>
|
||||||
|
}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
|
|
|
@ -150,8 +150,8 @@ exports[`rendering of the J40Header checks if component renders 1`] = `
|
||||||
This is a beta site.
|
This is a beta site.
|
||||||
</span>
|
</span>
|
||||||
<span>
|
<span>
|
||||||
It is an early, in-progress version of the tool with limited datasets
|
It is an early, in-progress version of the tool with limited datasets that will
|
||||||
that will be continuously updated.
|
be regularly updated.
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -9,8 +9,8 @@ export const BETA_BANNER = defineMessages({
|
||||||
},
|
},
|
||||||
INFO: {
|
INFO: {
|
||||||
id: 'banner.beta.info',
|
id: 'banner.beta.info',
|
||||||
defaultMessage: `It is an early, in-progress version of the tool with limited datasets
|
defaultMessage: `It is an early, in-progress version of the tool with limited datasets that will
|
||||||
that will be continuously updated.`,
|
be regularly updated.`,
|
||||||
description: 'the main info of the beta banner',
|
description: 'the main info of the beta banner',
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
|
@ -237,6 +237,16 @@ export const COMMUNITY = {
|
||||||
};
|
};
|
||||||
|
|
||||||
export const SIDE_PANEL_CATEGORY = defineMessages({
|
export const SIDE_PANEL_CATEGORY = defineMessages({
|
||||||
|
INDICATOR: {
|
||||||
|
id: 'areaDetail.category.header.indicator',
|
||||||
|
defaultMessage: 'Indicator',
|
||||||
|
description: 'header for each category',
|
||||||
|
},
|
||||||
|
PERCENTILE: {
|
||||||
|
id: 'areaDetail.category.header.percentile',
|
||||||
|
defaultMessage: 'Percentile (0-100)',
|
||||||
|
description: 'header for each category',
|
||||||
|
},
|
||||||
CLIMATE: {
|
CLIMATE: {
|
||||||
id: 'areaDetail.indicator.title.climate',
|
id: 'areaDetail.indicator.title.climate',
|
||||||
defaultMessage: 'Climate change',
|
defaultMessage: 'Climate change',
|
||||||
|
@ -550,7 +560,8 @@ export const SIDE_PANEL_INDICATOR_DESCRIPTION = defineMessages({
|
||||||
HIGH_SKL: {
|
HIGH_SKL: {
|
||||||
id: 'areaDetail.indicator.description.high.school',
|
id: 'areaDetail.indicator.description.high.school',
|
||||||
defaultMessage: `
|
defaultMessage: `
|
||||||
Percent of people ages 25 years or older whose education level is less than a high school diploma
|
Percent (not a percentile) of people ages 25 years or older whose education level is less than a
|
||||||
|
high school diploma
|
||||||
`,
|
`,
|
||||||
description: 'Percent of people ages 25 years or older whose education level is less than a high school diploma',
|
description: 'Percent of people ages 25 years or older whose education level is less than a high school diploma',
|
||||||
},
|
},
|
||||||
|
@ -597,7 +608,7 @@ export const NOTE_ON_TERRITORIES = {
|
||||||
PARA_1: <FormattedMessage
|
PARA_1: <FormattedMessage
|
||||||
id={'explore.page.note.on.territories.para.1'}
|
id={'explore.page.note.on.territories.para.1'}
|
||||||
defaultMessage={`
|
defaultMessage={`
|
||||||
The data sources described on the {dataMethLink} are used to
|
The data sources described on the {dataMethLink} page are used to
|
||||||
identify disadvantaged communities for all fifty states and the District of Columbia. However, not all
|
identify disadvantaged communities for all fifty states and the District of Columbia. However, not all
|
||||||
of these data sources are currently available for the U.S. territories. The Census ACS data from
|
of these data sources are currently available for the U.S. territories. The Census ACS data from
|
||||||
2015-2019 was used to identify disadvantaged communities for Puerto Rico. This uses the same methodology
|
2015-2019 was used to identify disadvantaged communities for Puerto Rico. This uses the same methodology
|
||||||
|
|
|
@ -148,7 +148,20 @@ export const CATEGORY= {
|
||||||
|
|
||||||
// Indicator Categories copy constants:
|
// Indicator Categories copy constants:
|
||||||
export const CATEGORIES = {
|
export const CATEGORIES = {
|
||||||
|
ALL: {
|
||||||
|
METHODOLOGY:
|
||||||
|
<FormattedMessage
|
||||||
|
id= {'methodologies.all.used.in.text'}
|
||||||
|
defaultMessage= {`All methodologies except for training and workforce development`}
|
||||||
|
description= {'used in text for all methodologies'}
|
||||||
|
/>,
|
||||||
|
},
|
||||||
CLIMATE_CHANGE: {
|
CLIMATE_CHANGE: {
|
||||||
|
METHODOLOGY: <FormattedMessage
|
||||||
|
id= {'indicator.categories.climate.change.methodology'}
|
||||||
|
defaultMessage= {`Climate change methodology`}
|
||||||
|
description= {'climate change methodology'}
|
||||||
|
/>,
|
||||||
TITLE: <FormattedMessage
|
TITLE: <FormattedMessage
|
||||||
id={'indicator.categories.climate.change.title'}
|
id={'indicator.categories.climate.change.title'}
|
||||||
defaultMessage={'Climate change'}
|
defaultMessage={'Climate change'}
|
||||||
|
@ -187,6 +200,11 @@ export const CATEGORIES = {
|
||||||
/>,
|
/>,
|
||||||
},
|
},
|
||||||
CLEAN_ENERGY: {
|
CLEAN_ENERGY: {
|
||||||
|
METHODOLOGY: <FormattedMessage
|
||||||
|
id= {'indicator.categories.climate.change.methodology'}
|
||||||
|
defaultMessage= {`Clean energy and energy efficiency methodology`}
|
||||||
|
description= {`Clean energy and energy efficiency methodology`}
|
||||||
|
/>,
|
||||||
TITLE: <FormattedMessage
|
TITLE: <FormattedMessage
|
||||||
id={'indicator.categories.clean.energy.title'}
|
id={'indicator.categories.clean.energy.title'}
|
||||||
defaultMessage={'Clean energy and energy efficiency'}
|
defaultMessage={'Clean energy and energy efficiency'}
|
||||||
|
@ -224,6 +242,11 @@ export const CATEGORIES = {
|
||||||
/>,
|
/>,
|
||||||
},
|
},
|
||||||
CLEAN_TRANSPORT: {
|
CLEAN_TRANSPORT: {
|
||||||
|
METHODOLOGY: <FormattedMessage
|
||||||
|
id= {'indicator.categories.clean.transport.methodology'}
|
||||||
|
defaultMessage= {`Clean transportation methodology`}
|
||||||
|
description= {`Clean transportation methodology`}
|
||||||
|
/>,
|
||||||
TITLE: <FormattedMessage
|
TITLE: <FormattedMessage
|
||||||
id={'indicator.categories.clean.transport.title'}
|
id={'indicator.categories.clean.transport.title'}
|
||||||
defaultMessage={'Clean transportation'}
|
defaultMessage={'Clean transportation'}
|
||||||
|
@ -261,6 +284,11 @@ export const CATEGORIES = {
|
||||||
/>,
|
/>,
|
||||||
},
|
},
|
||||||
AFFORDABLE_HOUSING: {
|
AFFORDABLE_HOUSING: {
|
||||||
|
METHODOLOGY: <FormattedMessage
|
||||||
|
id= {'indicator.categories.afford.housing.methodology'}
|
||||||
|
defaultMessage= {`Affordable and sustainable housing methodology`}
|
||||||
|
description= {`Affordable and sustainable housing methodology`}
|
||||||
|
/>,
|
||||||
TITLE: <FormattedMessage
|
TITLE: <FormattedMessage
|
||||||
id={'indicator.categories.afford.house.title'}
|
id={'indicator.categories.afford.house.title'}
|
||||||
defaultMessage={'Affordable and sustainable housing'}
|
defaultMessage={'Affordable and sustainable housing'}
|
||||||
|
@ -270,7 +298,7 @@ export const CATEGORIES = {
|
||||||
id= {'indicator.categories.afford.house.if'}
|
id= {'indicator.categories.afford.house.if'}
|
||||||
defaultMessage= {`
|
defaultMessage= {`
|
||||||
{if} at or above 90th percentile for {lead} AND {medianHomeVal} is at or less than
|
{if} at or above 90th percentile for {lead} AND {medianHomeVal} is at or less than
|
||||||
90th percentile OR at or above the 10th percentile for the {houseBur}
|
90th percentile OR at or above the 90th percentile for the {houseBur}
|
||||||
`}
|
`}
|
||||||
description= {'if portion of the formula'}
|
description= {'if portion of the formula'}
|
||||||
values= {{
|
values= {{
|
||||||
|
@ -300,6 +328,11 @@ export const CATEGORIES = {
|
||||||
/>,
|
/>,
|
||||||
},
|
},
|
||||||
LEGACY_POLLUTION: {
|
LEGACY_POLLUTION: {
|
||||||
|
METHODOLOGY: <FormattedMessage
|
||||||
|
id= {'indicator.categories.legacy.pollute.methodology'}
|
||||||
|
defaultMessage= {`Reduction and remediation of legacy pollution methodology`}
|
||||||
|
description= {`Reduction and remediation of legacy pollution methodology`}
|
||||||
|
/>,
|
||||||
TITLE: <FormattedMessage
|
TITLE: <FormattedMessage
|
||||||
id={'indicator.categories.legacy.pollution.title'}
|
id={'indicator.categories.legacy.pollution.title'}
|
||||||
defaultMessage={'Reduction and remediation of legacy pollution'}
|
defaultMessage={'Reduction and remediation of legacy pollution'}
|
||||||
|
@ -338,6 +371,11 @@ export const CATEGORIES = {
|
||||||
/>,
|
/>,
|
||||||
},
|
},
|
||||||
CLEAN_WATER: {
|
CLEAN_WATER: {
|
||||||
|
METHODOLOGY: <FormattedMessage
|
||||||
|
id= {'indicator.categories.clean.water.methodology'}
|
||||||
|
defaultMessage= {`Critical clean water and waste infrastructure`}
|
||||||
|
description= {`Critical clean water and waste infrastructure methodology`}
|
||||||
|
/>,
|
||||||
TITLE: <FormattedMessage
|
TITLE: <FormattedMessage
|
||||||
id={'indicator.categories.clean.water.title'}
|
id={'indicator.categories.clean.water.title'}
|
||||||
defaultMessage={'Critical clean water and waste infrastructure'}
|
defaultMessage={'Critical clean water and waste infrastructure'}
|
||||||
|
@ -374,6 +412,11 @@ export const CATEGORIES = {
|
||||||
/>,
|
/>,
|
||||||
},
|
},
|
||||||
HEALTH_BURDENS: {
|
HEALTH_BURDENS: {
|
||||||
|
METHODOLOGY: <FormattedMessage
|
||||||
|
id= {'indicator.categories.health.burdens.methodology'}
|
||||||
|
defaultMessage= {`Health burdens methodology`}
|
||||||
|
description= {`Health burdens methodology`}
|
||||||
|
/>,
|
||||||
TITLE: <FormattedMessage
|
TITLE: <FormattedMessage
|
||||||
id={'indicator.categories.health.burdens.title'}
|
id={'indicator.categories.health.burdens.title'}
|
||||||
defaultMessage={'Health burdens'}
|
defaultMessage={'Health burdens'}
|
||||||
|
@ -413,6 +456,11 @@ export const CATEGORIES = {
|
||||||
/>,
|
/>,
|
||||||
},
|
},
|
||||||
WORKFORCE_DEV: {
|
WORKFORCE_DEV: {
|
||||||
|
METHODOLOGY: <FormattedMessage
|
||||||
|
id= {'indicator.categories.workforce.dev.methodology'}
|
||||||
|
defaultMessage= {`Training and workforce development methodology`}
|
||||||
|
description= {`Training and workforce development`}
|
||||||
|
/>,
|
||||||
TITLE: <FormattedMessage
|
TITLE: <FormattedMessage
|
||||||
id={'indicator.categories.work.dev.title'}
|
id={'indicator.categories.work.dev.title'}
|
||||||
defaultMessage={'Training and workforce development'}
|
defaultMessage={'Training and workforce development'}
|
||||||
|
@ -503,303 +551,592 @@ export const DATASET_CARD_LABELS = defineMessages({
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
export const RESPONSIBLE_PARTIES = {
|
||||||
|
CENSUS_ACS: <FormattedMessage
|
||||||
|
id= {'category.resp.party.census.link'}
|
||||||
|
defaultMessage= {'{resPartyCensusLink}'}
|
||||||
|
description= {'responsible party link for Census ACS'}
|
||||||
|
values= {{
|
||||||
|
resPartyCensusLink:
|
||||||
|
<a href={`https://www.census.gov/programs-surveys/acs`} target={'_blank'} rel="noreferrer">
|
||||||
|
{`Census's American Community Survey`}
|
||||||
|
</a>,
|
||||||
|
}}
|
||||||
|
/>,
|
||||||
|
FEMA: <FormattedMessage
|
||||||
|
id= {'category.resp.party.fema.link'}
|
||||||
|
defaultMessage= {`{resPartyFemaLink}`}
|
||||||
|
description= {'responsible party link for FEMA'}
|
||||||
|
values={{
|
||||||
|
resPartyFemaLink:
|
||||||
|
<a href={`https://hazards.fema.gov/nri/expected-annual-loss`} target={'_blank'} rel="noreferrer">
|
||||||
|
{`Federal Emergency Management Agency (FEMA)`}
|
||||||
|
</a>,
|
||||||
|
}}
|
||||||
|
/>,
|
||||||
|
DOE: <FormattedMessage
|
||||||
|
id= {'category.resp.party.doe.link'}
|
||||||
|
defaultMessage= {`{resPartyDoeLink}`}
|
||||||
|
description= {'responsible party link for FEMA'}
|
||||||
|
values={{
|
||||||
|
resPartyDoeLink:
|
||||||
|
<a href={`https://www.energy.gov/eere/slsc/low-income-energy-affordability-data-lead-tool`}
|
||||||
|
target={'_blank'}
|
||||||
|
rel="noreferrer">
|
||||||
|
{`Department of Energy (DOE) LEAD Score`}
|
||||||
|
</a>,
|
||||||
|
}}
|
||||||
|
/>,
|
||||||
|
EPA_OAR: <FormattedMessage
|
||||||
|
id= {'category.resp.party.epa.oar.link'}
|
||||||
|
defaultMessage= {`{resPartyEpaOarLink}`}
|
||||||
|
description= {'responsible party link for EPA OAR'}
|
||||||
|
values={{
|
||||||
|
resPartyEpaOarLink:
|
||||||
|
<a href={`https://www.epa.gov/ejscreen/technical-documentation-ejscreen`}
|
||||||
|
target={'_blank'}
|
||||||
|
rel="noreferrer">
|
||||||
|
{`
|
||||||
|
Environmental Protection Agency (EPA) Office of Air and Radiation (OAR) fusion of model and monitor
|
||||||
|
data as compiled by EPA's EJSCREEN, sourced from EPA National Air Toxics Assessment (NATA), 2017
|
||||||
|
U.S. Department of Transportation (DOT) traffic data
|
||||||
|
`}
|
||||||
|
</a>,
|
||||||
|
}}
|
||||||
|
/>,
|
||||||
|
EPA_NATA: <FormattedMessage
|
||||||
|
id= {'category.resp.party.epa.nata.link'}
|
||||||
|
defaultMessage= {`{resPartyEpaOarLink}`}
|
||||||
|
description= {'responsible party link for EPA NATA'}
|
||||||
|
values={{
|
||||||
|
resPartyEpaOarLink:
|
||||||
|
<a href={`https://www.epa.gov/ejscreen/technical-documentation-ejscreen`}
|
||||||
|
target={'_blank'}
|
||||||
|
rel="noreferrer">
|
||||||
|
{`
|
||||||
|
Environmental Protection Agency (EPA) National Air Toxics Assessment (NATA)
|
||||||
|
as compiled by EPA's EJSCREEN
|
||||||
|
`}
|
||||||
|
</a>,
|
||||||
|
}}
|
||||||
|
/>,
|
||||||
|
DOT_EPA: <FormattedMessage
|
||||||
|
id= {'category.resp.party.dot.epa.link'}
|
||||||
|
defaultMessage= {`{resPartyDotEpaLink}`}
|
||||||
|
description= {'responsible party link for DOT EPA'}
|
||||||
|
values={{
|
||||||
|
resPartyDotEpaLink:
|
||||||
|
<a href={`https://www.epa.gov/ejscreen/technical-documentation-ejscreen`}
|
||||||
|
target={'_blank'}
|
||||||
|
rel="noreferrer">
|
||||||
|
{`
|
||||||
|
Department of Transportation (DOT) traffic data as compiled by EPA's EJSCREEN
|
||||||
|
`}
|
||||||
|
</a>,
|
||||||
|
}}
|
||||||
|
/>,
|
||||||
|
HUD: <FormattedMessage
|
||||||
|
id= {'category.resp.party.hud.link'}
|
||||||
|
defaultMessage= {`{resPartyHudLink}`}
|
||||||
|
description= {'responsible party link for HUD'}
|
||||||
|
values={{
|
||||||
|
resPartyHudLink:
|
||||||
|
<a href={`https://www.huduser.gov/portal/datasets/cp.html`}
|
||||||
|
target={'_blank'}
|
||||||
|
rel="noreferrer">
|
||||||
|
{`
|
||||||
|
Department of Housing & Urban Development’s
|
||||||
|
(HUD) Comprehensive Housing Affordability Strategy dataset
|
||||||
|
`}
|
||||||
|
</a>,
|
||||||
|
}}
|
||||||
|
/>,
|
||||||
|
EPA_TSDF: <FormattedMessage
|
||||||
|
id= {'category.resp.party.epa.tsdf.link'}
|
||||||
|
defaultMessage= {`{resPartyEpaTsdfLink}`}
|
||||||
|
description= {'responsible party link for EPA TSDF'}
|
||||||
|
values={{
|
||||||
|
resPartyEpaTsdfLink:
|
||||||
|
<a href={`https://enviro.epa.gov/facts/rcrainfo/search.html`}
|
||||||
|
target={'_blank'}
|
||||||
|
rel="noreferrer">
|
||||||
|
{`
|
||||||
|
Environmental Protection Agency (EPA) Treatment Storage, and Disposal Facilities
|
||||||
|
(TSDF) data calculated from EPA RCRA info database as compiled by EPA’s EJSCREEN
|
||||||
|
`}
|
||||||
|
</a>,
|
||||||
|
}}
|
||||||
|
/>,
|
||||||
|
EPA_CERCLIS: <FormattedMessage
|
||||||
|
id= {'category.resp.party.epa.cerclis.link'}
|
||||||
|
defaultMessage= {`{resPartyEpaCerclisLink}`}
|
||||||
|
description= {'responsible party link for EPA CERCLIS'}
|
||||||
|
values={{
|
||||||
|
resPartyEpaCerclisLink:
|
||||||
|
<a href={`https://enviro.epa.gov/facts/rcrainfo/search.html`}
|
||||||
|
target={'_blank'}
|
||||||
|
rel="noreferrer">
|
||||||
|
{`
|
||||||
|
Environmental Protection Agency (EPA) CERCLIS database as compiled by EPA’s EJSCREEN
|
||||||
|
`}
|
||||||
|
</a>,
|
||||||
|
}}
|
||||||
|
/>,
|
||||||
|
EPA_RMP: <FormattedMessage
|
||||||
|
id= {'category.resp.party.epa.rmp.link'}
|
||||||
|
defaultMessage= {`{resPartyEpaRmpLink}`}
|
||||||
|
description= {'responsible party link for EPA RMP'}
|
||||||
|
values={{
|
||||||
|
resPartyEpaRmpLink:
|
||||||
|
<a href={`https://www.epa.gov/ejscreen/technical-documentation-ejscreen`}
|
||||||
|
target={'_blank'}
|
||||||
|
rel="noreferrer">
|
||||||
|
{`
|
||||||
|
Environmental Protection Agency (EPA) RMP database as compiled by EPA’s EJSCREEN
|
||||||
|
`}
|
||||||
|
</a>,
|
||||||
|
}}
|
||||||
|
/>,
|
||||||
|
EPA_RSEI: <FormattedMessage
|
||||||
|
id= {'category.resp.party.epa.rsei.link'}
|
||||||
|
defaultMessage= {`{resPartyEpaRseiLink}`}
|
||||||
|
description= {'responsible party link for EPA RSEI'}
|
||||||
|
values={{
|
||||||
|
resPartyEpaRseiLink:
|
||||||
|
<a href={`https://www.epa.gov/ejscreen/technical-documentation-ejscreen`}
|
||||||
|
target={'_blank'}
|
||||||
|
rel="noreferrer">
|
||||||
|
{`
|
||||||
|
Environmental Protection Agency (EPA) Risk-Screening
|
||||||
|
Environmental Indicators (RSEI) Model as compiled by EPA's EJSCREEN
|
||||||
|
`}
|
||||||
|
</a>,
|
||||||
|
}}
|
||||||
|
/>,
|
||||||
|
CDC_PLACES: <FormattedMessage
|
||||||
|
id= {'category.resp.party.cdc.places.link'}
|
||||||
|
defaultMessage= {`{resPartyCdcPlacesLink}`}
|
||||||
|
description= {'responsible party link for CDC Places'}
|
||||||
|
values={{
|
||||||
|
resPartyCdcPlacesLink:
|
||||||
|
<a href={`https://www.cdc.gov/places/index.html`}
|
||||||
|
target={'_blank'}
|
||||||
|
rel="noreferrer">
|
||||||
|
{`
|
||||||
|
Centers for Disease Control and Prevention (CDC) PLACES
|
||||||
|
`}
|
||||||
|
</a>,
|
||||||
|
}}
|
||||||
|
/>,
|
||||||
|
CDC_SLEEP: <FormattedMessage
|
||||||
|
id= {'category.resp.party.cdc.sleep.link'}
|
||||||
|
defaultMessage= {`{resPartyCdcSleepLink}`}
|
||||||
|
description= {'responsible party link for CDC Sleep'}
|
||||||
|
values={{
|
||||||
|
resPartyCdcSleepLink:
|
||||||
|
<a href={`https://www.cdc.gov/nchs/nvss/usaleep/usaleep.html#data`}
|
||||||
|
target={'_blank'}
|
||||||
|
rel="noreferrer">
|
||||||
|
{`
|
||||||
|
CDC’s U.S. Small-area Life Expectancy Estimates Project (USALEEP)
|
||||||
|
`}
|
||||||
|
</a>,
|
||||||
|
}}
|
||||||
|
/>,
|
||||||
|
};
|
||||||
|
|
||||||
|
export const DATE_RANGE = {
|
||||||
|
TEN_PLUS_5: '2010-2015',
|
||||||
|
FOURTEEN: '2014',
|
||||||
|
FOURTEEN_PLUS_4: '2014-2018',
|
||||||
|
FOURTEEN_PLUS_7: '2014-2021',
|
||||||
|
FIFETEEN_PLUS_4: '2015-2019',
|
||||||
|
SIXTEEN_PLUS_3: '2016-2019',
|
||||||
|
SIXTEEN_PLUS_4: '2016-2020',
|
||||||
|
SEVENTEEN: '2017',
|
||||||
|
EIGHTEEN: '2018',
|
||||||
|
TWENTY: '2020',
|
||||||
|
};
|
||||||
|
|
||||||
export const INDICATORS = [
|
export const INDICATORS = [
|
||||||
{
|
{
|
||||||
domID: 'low-income',
|
domID: 'low-income',
|
||||||
indicator: 'Low income',
|
indicator: 'Low income',
|
||||||
description: `
|
description: <FormattedMessage
|
||||||
Percent of a block group's population in households where household income is at or below
|
id= {'category.low.income.description.text'}
|
||||||
200% of the federal poverty level.
|
defaultMessage= {`
|
||||||
`,
|
Percent of a census tract's population in households where household income is at or below
|
||||||
usedIn:
|
200% of the federal poverty level.
|
||||||
<FormattedMessage
|
`}
|
||||||
id= {'category.low.income.used.in'}
|
description= {'description text for low income'}
|
||||||
defaultMessage= {`All methodologies except for training and workforce development`}
|
/>,
|
||||||
description= {'used in text for low income'}
|
usedIn: CATEGORIES.ALL.METHODOLOGY,
|
||||||
/>,
|
responsibleParty: RESPONSIBLE_PARTIES.CENSUS_ACS,
|
||||||
respPartyLabel:
|
dateRange: DATE_RANGE.FIFETEEN_PLUS_4,
|
||||||
<FormattedMessage
|
|
||||||
id= {'category.low.income.resp.party.label'}
|
|
||||||
defaultMessage= {'{lowIncResPartyLinkText}.'}
|
|
||||||
description= {'responsible party label for low.income'}
|
|
||||||
values= {{
|
|
||||||
lowIncResPartyLinkText: `Census's American Community Survey`,
|
|
||||||
}}
|
|
||||||
/>,
|
|
||||||
dataSourceURL: `https://www.census.gov/programs-surveys/acs`,
|
|
||||||
dateRange: `2015-2019`,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
domID: 'exp-agr-loss-rate',
|
domID: 'exp-agr-loss-rate',
|
||||||
indicator: 'Expected agriculture loss rate',
|
indicator: 'Expected agriculture loss rate',
|
||||||
description: `
|
description: <FormattedMessage
|
||||||
Percent of agriculture value at risk from losses due to natural hazards. Calculated by dividing
|
id= {'category.exp.agr.loss.rate.description.text'}
|
||||||
the agriculture value at risk in a census tract by the total agriculture value in that census
|
defaultMessage= {`
|
||||||
tract. Fourteen natural hazards that have some link to climate change include: avalanche,
|
Percent of agriculture value at risk from losses due to natural hazards. Calculated by dividing
|
||||||
coastal flooding, cold wave, drought, hail, heat wave, hurricane, ice storm, landslide,
|
the agriculture value at risk in a census tract by the total agriculture value in that census
|
||||||
riverine flooding, strong wind, tornado, wildfire, and winter weather.
|
tract. Fourteen natural hazards that have some link to climate change include: avalanche,
|
||||||
`,
|
coastal flooding, cold wave, drought, hail, heat wave, hurricane, ice storm, landslide,
|
||||||
usedIn: `Climate change methodology`,
|
riverine flooding, strong wind, tornado, wildfire, and winter weather.
|
||||||
respPartyLabel: `Federal Emergency Management Agency (FEMA)`,
|
`}
|
||||||
dataSourceURL: `https://hazards.fema.gov/nri/expected-annual-loss`,
|
description= {'description text for exp agr loss rate'}
|
||||||
dateRange: `2014-2021`,
|
/>,
|
||||||
|
usedIn: CATEGORIES.CLIMATE_CHANGE.METHODOLOGY,
|
||||||
|
responsibleParty: RESPONSIBLE_PARTIES.FEMA,
|
||||||
|
dateRange: DATE_RANGE.FOURTEEN_PLUS_7,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
domID: 'exp-bld-loss-rate',
|
domID: 'exp-bld-loss-rate',
|
||||||
indicator: 'Expected building loss rate',
|
indicator: 'Expected building loss rate',
|
||||||
description: `
|
description: <FormattedMessage
|
||||||
Percent of building value at risk from losses due to natural hazards. Calculated by dividing the
|
id= {'category.exp.bld.loss.rate.description.text'}
|
||||||
building value at risk in a census tract by the total building value in that census tract.
|
defaultMessage= {`
|
||||||
Fourteen natural hazards that have some link to climate change include: avalanche, coastal flooding,
|
Percent of building value at risk from losses due to natural hazards. Calculated by dividing the
|
||||||
cold wave, drought, hail, heat wave, hurricane, ice storm, landslide, riverine flooding, strong
|
building value at risk in a census tract by the total building value in that census tract.
|
||||||
wind, tornado, wildfire, and winter weather.
|
Fourteen natural hazards that have some link to climate change include: avalanche,
|
||||||
`,
|
coastal flooding, cold wave, drought, hail, heat wave, hurricane, ice storm, landslide,
|
||||||
usedIn: `Climate change methodology`,
|
riverine flooding, strong wind, tornado, wildfire, and winter weather.
|
||||||
respPartyLabel: `Federal Emergency Management Agency (FEMA)`,
|
`}
|
||||||
dataSourceURL: `https://hazards.fema.gov/nri/expected-annual-loss`,
|
description= {'description text for exp bld loss rate'}
|
||||||
dateRange: `2014-2021`,
|
/>,
|
||||||
|
usedIn: CATEGORIES.CLIMATE_CHANGE.METHODOLOGY,
|
||||||
|
responsibleParty: RESPONSIBLE_PARTIES.FEMA,
|
||||||
|
dateRange: DATE_RANGE.FOURTEEN_PLUS_7,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
domID: 'exp-pop-loss-rate',
|
domID: 'exp-pop-loss-rate',
|
||||||
indicator: 'Expected population loss rate',
|
indicator: 'Expected population loss rate',
|
||||||
description: `
|
description: <FormattedMessage
|
||||||
Rate relative to the population in fatalities and injuries due to natural hazards each year.
|
id= {'category.exp.pop.loss.rate.description.text'}
|
||||||
Fourteen natural hazards that have some link to climate change include: avalanche, coastal
|
defaultMessage= {`
|
||||||
flooding, cold wave, drought, hail, heat wave, hurricane, ice storm, landslide, riverine
|
Rate relative to the population in fatalities and injuries due to natural hazards each year.
|
||||||
flooding, strong wind, tornado, wildfire, and winter weather.
|
Fourteen natural hazards that have some link to climate change include: avalanche, coastal
|
||||||
Population loss is defined as the Spatial Hazard Events and Losses or National Centers
|
flooding, cold wave, drought, hail, heat wave, hurricane, ice storm, landslide, riverine
|
||||||
for Environmental Information’s (NCEI) reported number of fatalities and injuries caused by the
|
flooding, strong wind, tornado, wildfire, and winter weather.
|
||||||
hazard occurrence. To combine fatalities and injuries for the computation of population loss value,
|
Population loss is defined as the Spatial Hazard Events and Losses or National Centers
|
||||||
an injury is counted as one-tenth (1/10) of a fatality. The NCEI Storm Events Database
|
for Environmental Information’s (NCEI) reported number of fatalities and injuries caused by the
|
||||||
classifies injuries and fatalities as direct or indirect. Both direct and indirect injuries
|
hazard occurrence. To combine fatalities and injuries for the computation of population loss value,
|
||||||
and fatalities are counted as population loss. This total number of injuries and fatalities
|
an injury is counted as one-tenth (1/10) of a fatality. The NCEI Storm Events Database
|
||||||
is then divided by the population in the census tract to get a per-capita rate of population risk.
|
classifies injuries and fatalities as direct or indirect. Both direct and indirect injuries
|
||||||
|
and fatalities are counted as population loss. This total number of injuries and fatalities
|
||||||
`,
|
is then divided by the population in the census tract to get a per-capita rate of population risk.
|
||||||
usedIn: `Climate change methodology`,
|
`}
|
||||||
respPartyLabel: `Federal Emergency Management Agency (FEMA)`,
|
description= {'description text for exp pop loss rate'}
|
||||||
dataSourceURL: `https://hazards.fema.gov/nri/expected-annual-loss`,
|
/>,
|
||||||
dateRange: `2014-2021`,
|
usedIn: CATEGORIES.CLIMATE_CHANGE.METHODOLOGY,
|
||||||
|
responsibleParty: RESPONSIBLE_PARTIES.FEMA,
|
||||||
|
dateRange: DATE_RANGE.FOURTEEN_PLUS_7,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
domID: 'energy-burden',
|
domID: 'energy-burden',
|
||||||
indicator: 'Energy cost burden',
|
indicator: 'Energy cost burden',
|
||||||
description: `Average annual energy cost ($) divided by household income.`,
|
description: <FormattedMessage
|
||||||
usedIn: `Clean energy and energy efficiency methodology`,
|
id= {'category.energy.burden.description.text'}
|
||||||
respPartyLabel: `Department of Energy (DOE) LEAD Score`,
|
defaultMessage= {`Average annual energy cost ($) divided by household income.`}
|
||||||
dataSourceURL: `https://www.energy.gov/eere/slsc/low-income-energy-affordability-data-lead-tool`,
|
description= {'description text for energy burden'}
|
||||||
dateRange: `2018`,
|
/>,
|
||||||
|
usedIn: CATEGORIES.CLEAN_ENERGY.METHODOLOGY,
|
||||||
|
responsibleParty: RESPONSIBLE_PARTIES.DOE,
|
||||||
|
dateRange: DATE_RANGE.EIGHTEEN,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
domID: 'pm-25',
|
domID: 'pm-25',
|
||||||
indicator: 'PM2.5 in the air',
|
indicator: 'PM2.5 in the air',
|
||||||
description: `Fine inhalable particles, with diameters that are generally
|
description: <FormattedMessage
|
||||||
2.5 micrometers and smaller.`,
|
id= {'category.pm2.5.description.text'}
|
||||||
usedIn: `Clean energy and energy efficiency methodology`,
|
defaultMessage= {`
|
||||||
respPartyLabel: `Environmental Protection Agency (EPA) Office of Air
|
Fine inhalable particles, with diameters that are generally 2.5 micrometers and smaller.
|
||||||
and Radiation (OAR) fusion of model and monitor data as compiled by EPA's EJSCREEN`,
|
`}
|
||||||
dataSourceURL: `https://www.epa.gov/ejscreen/technical-documentation-ejscreen`,
|
description= {'description text for pm 2.5'}
|
||||||
dateRange: `2017`,
|
/>,
|
||||||
|
usedIn: CATEGORIES.CLEAN_ENERGY.METHODOLOGY,
|
||||||
|
responsibleParty: RESPONSIBLE_PARTIES.EPA_OAR,
|
||||||
|
dateRange: DATE_RANGE.SEVENTEEN,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
domID: 'diesel-pm',
|
domID: 'diesel-pm',
|
||||||
indicator: 'Diesel particulate matter exposure',
|
indicator: 'Diesel particulate matter exposure',
|
||||||
description: `Mixture of particles that is part of diesel exhaust in the air.`,
|
description: <FormattedMessage
|
||||||
usedIn: `Clean transportation methodology`,
|
id= {'category.diesel.pm.description.text'}
|
||||||
respPartyLabel: `Environmental Protection Agency (EPA) National Air Toxics Assessment (NATA)
|
defaultMessage= {`
|
||||||
as compiled by EPA's EJSCREEN`,
|
Mixture of particles that is part of diesel exhaust in the air.
|
||||||
dataSourceURL: `https://www.epa.gov/ejscreen/technical-documentation-ejscreen`,
|
`}
|
||||||
dateRange: `2014`,
|
description= {'description text for diesel pm'}
|
||||||
|
/>,
|
||||||
|
usedIn: CATEGORIES.CLEAN_TRANSPORT.METHODOLOGY,
|
||||||
|
responsibleParty: RESPONSIBLE_PARTIES.EPA_NATA,
|
||||||
|
dateRange: DATE_RANGE.FOURTEEN,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
domID: 'traffic-vol',
|
domID: 'traffic-vol',
|
||||||
indicator: 'Traffic proximity and volume',
|
indicator: 'Traffic proximity and volume',
|
||||||
description: `Count of vehicles (average annual daily traffic) at major roads
|
description: <FormattedMessage
|
||||||
within 500 meters, divided by distance in meters (not km).`,
|
id= {'category.traffic.vol.description.text'}
|
||||||
usedIn: `Clean transportation methodology`,
|
defaultMessage= {`
|
||||||
respPartyLabel: `Department of Transportation (DOT) traffic data as compiled by EPA's EJSCREEN`,
|
Count of vehicles (average annual daily traffic) at major roads
|
||||||
dataSourceURL: `https://www.epa.gov/ejscreen/technical-documentation-ejscreen`,
|
within 500 meters, divided by distance in meters (not km).
|
||||||
dateRange: `2017`,
|
`}
|
||||||
|
description= {'description text for traffic volume'}
|
||||||
|
/>,
|
||||||
|
usedIn: CATEGORIES.CLEAN_TRANSPORT.METHODOLOGY,
|
||||||
|
responsibleParty: RESPONSIBLE_PARTIES.DOT_EPA,
|
||||||
|
dateRange: DATE_RANGE.SEVENTEEN,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
domID: 'house-burden',
|
domID: 'house-burden',
|
||||||
indicator: 'Housing cost burden',
|
indicator: 'Housing cost burden',
|
||||||
description: `
|
description: <FormattedMessage
|
||||||
The percent of households in a census tract that are both earning less than 80% of HUD Area Median
|
id= {'category.house.burden.description.text'}
|
||||||
Family Income by county and are paying greater than 30% of their income to housing costs.
|
defaultMessage= {`
|
||||||
`,
|
The percent of households in a census tract that are both earning less than 80% of HUD Area Median
|
||||||
usedIn: `Affordable and sustainable housing methodology`,
|
Family Income by county and are paying greater than 30% of their income to housing costs.
|
||||||
respPartyLabel: `Department of Housing & Urban Development’s
|
`}
|
||||||
(HUD) Comprehensive Housing Affordability Strategy dataset`,
|
description= {'description text for housing burden'}
|
||||||
dataSourceURL: `https://www.huduser.gov/portal/datasets/cp.html`,
|
/>,
|
||||||
dateRange: `2014-2018`,
|
usedIn: CATEGORIES.AFFORDABLE_HOUSING.METHODOLOGY,
|
||||||
|
responsibleParty: RESPONSIBLE_PARTIES.HUD,
|
||||||
|
dateRange: DATE_RANGE.FOURTEEN_PLUS_4,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
domID: 'lead-paint',
|
domID: 'lead-paint',
|
||||||
indicator: 'Lead paint',
|
indicator: 'Lead paint',
|
||||||
description: `
|
description: <FormattedMessage
|
||||||
Percent of housing units built pre-1960, used as an indicator of potential lead paint exposure in
|
id= {'category.lead.paint.description.text'}
|
||||||
tracts with median home values less than 90th percentile `,
|
defaultMessage= {`
|
||||||
usedIn: `Affordable and sustainable housing methodology`,
|
Percent of housing units built pre-1960, used as an indicator of potential lead paint exposure in
|
||||||
respPartyLabel: `Census's American Community Survey`,
|
tracts with median home values less than 90th percentile
|
||||||
dataSourceURL: `https://www.census.gov/programs-surveys/acs`,
|
`}
|
||||||
dateRange: `2015-2019`,
|
description= {'description text for lead paint'}
|
||||||
|
/>,
|
||||||
|
usedIn: CATEGORIES.AFFORDABLE_HOUSING.METHODOLOGY,
|
||||||
|
responsibleParty: RESPONSIBLE_PARTIES.CENSUS_ACS,
|
||||||
|
dateRange: DATE_RANGE.FIFETEEN_PLUS_4,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
domID: 'median-home',
|
domID: 'median-home',
|
||||||
indicator: 'Low median home value',
|
indicator: 'Low median home value',
|
||||||
description: `Median home value of owner-occupied housing units in the census tract.`,
|
description: <FormattedMessage
|
||||||
usedIn: `Affordable and sustainable housing methodology`,
|
id= {'category.lead.paint.description.text'}
|
||||||
respPartyLabel: `Census's American Community Survey`,
|
defaultMessage= {`
|
||||||
dataSourceURL: `https://www.census.gov/programs-surveys/acs`,
|
Median home value of owner-occupied housing units in the census tract.
|
||||||
dateRange: `2015-2019`,
|
`}
|
||||||
|
description= {'description text for lead paint'}
|
||||||
|
/>,
|
||||||
|
usedIn: CATEGORIES.AFFORDABLE_HOUSING.METHODOLOGY,
|
||||||
|
responsibleParty: RESPONSIBLE_PARTIES.CENSUS_ACS,
|
||||||
|
dateRange: DATE_RANGE.FIFETEEN_PLUS_4,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
domID: 'prox-haz',
|
domID: 'prox-haz',
|
||||||
indicator: 'Proximity to hazardous waste facilities',
|
indicator: 'Proximity to hazardous waste facilities',
|
||||||
description: `
|
description: <FormattedMessage
|
||||||
Count of hazardous waste facilities (Treatment, Storage, and Disposal Facilities and Large
|
id= {'category.prox.haz.description.text'}
|
||||||
Quantity Generators) within 5 km (or nearest beyond 5 km), each divided by distance in kilometers.
|
defaultMessage= {`
|
||||||
`,
|
Count of hazardous waste facilities (Treatment, Storage, and Disposal Facilities and Large
|
||||||
usedIn: `Reduction and remediation of legacy pollution methodology`,
|
Quantity Generators) within 5 km (or nearest beyond 5 km), each divided by distance in kilometers.
|
||||||
respPartyLabel: `
|
`}
|
||||||
Environmental Protection Agency (EPA) Treatment Storage, and Disposal Facilities
|
description= {'description text for proximity to hazards'}
|
||||||
(TSDF) data calculated from EPA RCRA info database as compiled by EPA’s EJSCREEN
|
/>,
|
||||||
`,
|
usedIn: CATEGORIES.LEGACY_POLLUTION.METHODOLOGY,
|
||||||
dataSourceURL: `https://enviro.epa.gov/facts/rcrainfo/search.html`,
|
responsibleParty: RESPONSIBLE_PARTIES.EPA_TSDF,
|
||||||
dateRange: `2015-2020`,
|
dateRange: DATE_RANGE.TWENTY,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
domID: 'prox-npl',
|
domID: 'prox-npl',
|
||||||
indicator: 'Proximity to National Priorities List (NPL) sites',
|
indicator: 'Proximity to National Priorities List (NPL) sites',
|
||||||
description: `
|
description: <FormattedMessage
|
||||||
Count of proposed or listed NPL - also known as superfund - sites within 5 km (or nearest one
|
id= {'category.prox.npl.description.text'}
|
||||||
beyond 5 km), each divided by distance in kilometers.`,
|
defaultMessage= {`
|
||||||
usedIn: `Reduction and remediation of legacy pollution methodology`,
|
Count of proposed or listed NPL - also known as superfund - sites within 5 km (or nearest one
|
||||||
respPartyLabel: `Environmental Protection Agency (EPA) CERCLIS database as compiled by EPA’s EJSCREEN`,
|
beyond 5 km), each divided by distance in kilometers.
|
||||||
dataSourceURL: `https://enviro.epa.gov/facts/rcrainfo/search.html`,
|
`}
|
||||||
dateRange: `2020`,
|
description= {'description text for proximity to npl'}
|
||||||
|
/>,
|
||||||
|
usedIn: CATEGORIES.LEGACY_POLLUTION.METHODOLOGY,
|
||||||
|
responsibleParty: RESPONSIBLE_PARTIES.EPA_CERCLIS,
|
||||||
|
dateRange: DATE_RANGE.TWENTY,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
domID: 'prox-rmp',
|
domID: 'prox-rmp',
|
||||||
indicator: 'Proximity to Risk Management Plan (RMP) facilities',
|
indicator: 'Proximity to Risk Management Plan (RMP) facilities',
|
||||||
description: `
|
description: <FormattedMessage
|
||||||
Count of RMP (potential chemical accident management plan) facilities within 5 km (or nearest
|
id= {'category.prox.rmp.description.text'}
|
||||||
one beyond 5 km), each divided by distance in kilometers.`,
|
defaultMessage= {`
|
||||||
usedIn: `Affordable and sustainable housing methodology`,
|
Count of RMP (potential chemical accident management plan) facilities within 5 km (or nearest
|
||||||
respPartyLabel: `Environmental Protection Agency (EPA) RMP database as compiled by EPA’s EJSCREEN`,
|
one beyond 5 km), each divided by distance in kilometers.
|
||||||
dataSourceURL: `https://www.epa.gov/ejscreen/technical-documentation-ejscreen`,
|
`}
|
||||||
dateRange: `2020`,
|
description= {'description text for proximity to rmp'}
|
||||||
|
/>,
|
||||||
|
usedIn: CATEGORIES.LEGACY_POLLUTION.METHODOLOGY,
|
||||||
|
responsibleParty: RESPONSIBLE_PARTIES.EPA_RMP,
|
||||||
|
dateRange: DATE_RANGE.TWENTY,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
domID: 'waste-water',
|
domID: 'waste-water',
|
||||||
indicator: 'Wastewater discharge',
|
indicator: 'Wastewater discharge',
|
||||||
description: `Risk-Screening Environmental Indicators (RSEI) modeled Toxic Concentrations at
|
description: <FormattedMessage
|
||||||
stream segments within 500 meters, divided by distance in kilometers (km).`,
|
id= {'category.waste.water.description.text'}
|
||||||
usedIn: `Critical clean water and waste infrastructure`,
|
defaultMessage= {`
|
||||||
respPartyLabel: `Environmental Protection Agency (EPA) Risk-Screening
|
Risk-Screening Environmental Indicators (RSEI) modeled Toxic Concentrations at
|
||||||
Environmental Indicators (RSEI) Model as compiled by EPA's EJSCREEN`,
|
stream segments within 500 meters, divided by distance in kilometers (km).
|
||||||
dataSourceURL: `https://www.epa.gov/ejscreen/technical-documentation-ejscreen`,
|
`}
|
||||||
dateRange: `2020`,
|
description= {'description text for waste water'}
|
||||||
|
/>,
|
||||||
|
usedIn: CATEGORIES.CLEAN_WATER.METHODOLOGY,
|
||||||
|
responsibleParty: RESPONSIBLE_PARTIES.EPA_RSEI,
|
||||||
|
dateRange: DATE_RANGE.TWENTY,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
domID: 'asthma',
|
domID: 'asthma',
|
||||||
indicator: 'Asthma',
|
indicator: 'Asthma',
|
||||||
description: `Weighted percent of people who answer “yes” both
|
description: <FormattedMessage
|
||||||
to both of the following questions: “Have you ever been told by a doctor,
|
id= {'category.asthma.description.text'}
|
||||||
nurse, or other health professional that you have asthma?” and the question
|
defaultMessage= {`
|
||||||
“Do you still have asthma?”`,
|
Weighted percent of people who answer “yes” to both of the following questions: “Have you ever
|
||||||
usedIn: `Health burdens methodology`,
|
been told by a doctor, nurse, or other health professional that you have asthma?” and the question
|
||||||
respPartyLabel: `Centers for Disease Control and Prevention (CDC) PLACES`,
|
“Do you still have asthma?”
|
||||||
dataSourceURL: `https://www.cdc.gov/places/index.html`,
|
`}
|
||||||
dateRange: `2016-2019`,
|
description= {'description text for asthma'}
|
||||||
|
/>,
|
||||||
|
usedIn: CATEGORIES.HEALTH_BURDENS.METHODOLOGY,
|
||||||
|
responsibleParty: RESPONSIBLE_PARTIES.CDC_PLACES,
|
||||||
|
dateRange: DATE_RANGE.SIXTEEN_PLUS_3,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
domID: 'diabetes',
|
domID: 'diabetes',
|
||||||
indicator: 'Diabetes',
|
indicator: 'Diabetes',
|
||||||
description: `Weighted percent of people ages 18 years and older who report having ever been
|
description: <FormattedMessage
|
||||||
told by a doctor, nurse, or other health professionals that they have
|
id= {'category.diabetes.description.text'}
|
||||||
diabetes other than diabetes during pregnancy.`,
|
defaultMessage= {`
|
||||||
usedIn: `Health burdens methodology`,
|
Weighted percent of people ages 18 years and older who report having ever been
|
||||||
respPartyLabel: `Centers for Disease Control and Prevention (CDC) PLACES`,
|
told by a doctor, nurse, or other health professionals that they have
|
||||||
dataSourceURL: `https://www.cdc.gov/places/index.html`,
|
diabetes other than diabetes during pregnancy.
|
||||||
dateRange: `2016-2019`,
|
`}
|
||||||
|
description= {'description text for diabetes'}
|
||||||
|
/>,
|
||||||
|
usedIn: CATEGORIES.HEALTH_BURDENS.METHODOLOGY,
|
||||||
|
responsibleParty: RESPONSIBLE_PARTIES.CDC_PLACES,
|
||||||
|
dateRange: DATE_RANGE.SIXTEEN_PLUS_3,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
domID: 'heart-disease',
|
domID: 'heart-disease',
|
||||||
indicator: 'Heart disease',
|
indicator: 'Heart disease',
|
||||||
description: `Weighted percent of people ages 18 years and older who report ever having been told
|
description: <FormattedMessage
|
||||||
by a doctor, nurse, or other health professionals that they had angina or
|
id= {'category.diabetes.description.text'}
|
||||||
coronary heart disease.`,
|
defaultMessage= {`
|
||||||
usedIn: `Health burdens methodology`,
|
Weighted percent of people ages 18 years and older who report ever having been told
|
||||||
respPartyLabel: `Centers for Disease Control and Prevention (CDC) PLACES`,
|
by a doctor, nurse, or other health professionals that they had angina or
|
||||||
dataSourceURL: `https://www.cdc.gov/places/index.html`,
|
coronary heart disease.
|
||||||
dateRange: `2016-2019`,
|
`}
|
||||||
|
description= {'description text for diabetes'}
|
||||||
|
/>,
|
||||||
|
usedIn: CATEGORIES.HEALTH_BURDENS.METHODOLOGY,
|
||||||
|
responsibleParty: RESPONSIBLE_PARTIES.CDC_PLACES,
|
||||||
|
dateRange: DATE_RANGE.SIXTEEN_PLUS_3,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
domID: 'life-exp',
|
domID: 'life-exp',
|
||||||
indicator: 'Low life expectancy',
|
indicator: 'Low life expectancy',
|
||||||
description: `
|
description: <FormattedMessage
|
||||||
Average number of years of life a person who has attained a given age can expect to live.
|
id= {'category.low.life.expectancy.description.text'}
|
||||||
Note: Unlike most of the other datasets, high values of this indicator indicate low burdens.
|
defaultMessage= {`
|
||||||
For percentile calculations, the percentile is calculated in reverse order, so that the tract with
|
Average number of years of life a person who has attained a given age can expect to live.
|
||||||
the highest median income relative to area median income (lowest burden on this measure) is at the
|
{note}
|
||||||
0th percentile, and the tract with the lowest median income relative to area median income
|
`}
|
||||||
(highest burden on this measure) is at the 100th percentile.
|
description= {'description text for low life expectancy'}
|
||||||
`,
|
values= {{
|
||||||
usedIn: `Health burdens methodology`,
|
note: <p><strong>Note:</strong>{`
|
||||||
respPartyLabel: `CDC’s U.S. Small-area Life Expectancy Estimates Project (USALEEP)`,
|
Unlike most of the other datasets, high values of this indicator indicate low burdens.
|
||||||
dataSourceURL: `https://www.cdc.gov/nchs/nvss/usaleep/usaleep.html#data`,
|
For percentile calculations, the percentile is calculated in reverse order, so that the tract with
|
||||||
dateRange: `2010-2015`,
|
the highest median income relative to area median income (lowest burden on this measure) is at the
|
||||||
|
0th percentile, and the tract with the lowest median income relative to area median income
|
||||||
|
(highest burden on this measure) is at the 100th percentile.
|
||||||
|
`}</p>,
|
||||||
|
}}
|
||||||
|
/>,
|
||||||
|
usedIn: CATEGORIES.HEALTH_BURDENS.METHODOLOGY,
|
||||||
|
responsibleParty: RESPONSIBLE_PARTIES.CDC_SLEEP,
|
||||||
|
dateRange: DATE_RANGE.TEN_PLUS_5,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
domID: 'low-med-inc',
|
domID: 'low-med-inc',
|
||||||
indicator: 'Low median Income',
|
indicator: 'Low median Income',
|
||||||
description: `Median income of the census tract calculated as a percent of the area’s median income.`,
|
description: <FormattedMessage
|
||||||
usedIn: `Training and workforce development`,
|
id= {'category.workforce.dev.description.text'}
|
||||||
respPartyLabel: `Census's American Community Survey`,
|
defaultMessage= {`
|
||||||
dataSourceURL: `https://www.census.gov/programs-surveys/acs`,
|
Median income of the census tract calculated as a percent of the area’s median income.
|
||||||
dateRange: `2015-2019`,
|
`}
|
||||||
|
description= {'description text for workforce dev'}
|
||||||
|
/>,
|
||||||
|
usedIn: CATEGORIES.WORKFORCE_DEV.METHODOLOGY,
|
||||||
|
responsibleParty: RESPONSIBLE_PARTIES.CENSUS_ACS,
|
||||||
|
dateRange: DATE_RANGE.FIFETEEN_PLUS_4,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
domID: 'ling-iso',
|
domID: 'ling-iso',
|
||||||
indicator: 'Linguistic Isolation',
|
indicator: 'Linguistic Isolation',
|
||||||
description: `
|
description: <FormattedMessage
|
||||||
The percent of limited speaking households, which are households where no one over age 14 speaks English well.
|
id= {'category.linguistic.iso.description.text'}
|
||||||
`,
|
defaultMessage= {`
|
||||||
usedIn: `Training and workforce development`,
|
The percent of limited speaking households, which are households where no one over age 14 speaks English well.
|
||||||
respPartyLabel: `Census's American Community Survey`,
|
`}
|
||||||
dataSourceURL: `https://www.census.gov/programs-surveys/acs`,
|
description= {'description text for linguistic isolation'}
|
||||||
dateRange: `2015-2019`,
|
/>,
|
||||||
|
usedIn: CATEGORIES.WORKFORCE_DEV.METHODOLOGY,
|
||||||
|
responsibleParty: RESPONSIBLE_PARTIES.CENSUS_ACS,
|
||||||
|
dateRange: DATE_RANGE.FIFETEEN_PLUS_4,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
domID: 'unemploy',
|
domID: 'unemploy',
|
||||||
indicator: 'Unemployment',
|
indicator: 'Unemployment',
|
||||||
description: `Number of unemployed people as a percentage of the civilian labor force`,
|
description: <FormattedMessage
|
||||||
usedIn: `Training and workforce development`,
|
id= {'category.unemploy.description.text'}
|
||||||
respPartyLabel: `Census's American Community Survey`,
|
defaultMessage= {`
|
||||||
dataSourceURL: `https://www.census.gov/programs-surveys/acs`,
|
Number of unemployed people as a percentage of the civilian labor force
|
||||||
dateRange: `2015-2019`,
|
`}
|
||||||
|
description= {'description text for unemployment'}
|
||||||
|
/>,
|
||||||
|
usedIn: CATEGORIES.WORKFORCE_DEV.METHODOLOGY,
|
||||||
|
responsibleParty: RESPONSIBLE_PARTIES.CENSUS_ACS,
|
||||||
|
dateRange: DATE_RANGE.FIFETEEN_PLUS_4,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
domID: 'poverty',
|
domID: 'poverty',
|
||||||
indicator: 'Poverty',
|
indicator: 'Poverty',
|
||||||
description: `Percent of a tract's population in households where the household income` +
|
description: <FormattedMessage
|
||||||
` is at or below 100% of the federal poverty level.`,
|
id= {'category.poverty.description.text'}
|
||||||
usedIn: `Training and workforce development`,
|
defaultMessage= {`
|
||||||
respPartyLabel: `Census's American Community Survey`,
|
Percent of a tract's population in households where the household income is at or below 100% of
|
||||||
dataSourceURL: `https://www.census.gov/programs-surveys/acs`,
|
the federal poverty level.
|
||||||
dateRange: `2015-2019`,
|
`}
|
||||||
|
description= {'description text for poverty'}
|
||||||
|
/>,
|
||||||
|
usedIn: CATEGORIES.WORKFORCE_DEV.METHODOLOGY,
|
||||||
|
responsibleParty: RESPONSIBLE_PARTIES.CENSUS_ACS,
|
||||||
|
dateRange: DATE_RANGE.FIFETEEN_PLUS_4,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
domID: 'high-school',
|
domID: 'high-school',
|
||||||
indicator: 'High school degree achievement rate',
|
indicator: 'High school degree achievement rate',
|
||||||
description: `Percent of people ages 25 years or older in a census tract whose
|
description: <FormattedMessage
|
||||||
education level is less than a high school diploma.`,
|
id= {'category.highschool.description.text'}
|
||||||
usedIn: `Training and workforce development`,
|
defaultMessage= {`
|
||||||
respPartyLabel: `Census's American Community Survey`,
|
Percent (not percentile) of people ages 25 years or older in a census tract whose
|
||||||
dataSourceURL: `https://www.census.gov/programs-surveys/acs`,
|
education level is less than a high school diploma.
|
||||||
dateRange: `2015-2019`,
|
`}
|
||||||
|
description= {'description text for highschool'}
|
||||||
|
/>,
|
||||||
|
usedIn: CATEGORIES.WORKFORCE_DEV.METHODOLOGY,
|
||||||
|
responsibleParty: RESPONSIBLE_PARTIES.CENSUS_ACS,
|
||||||
|
dateRange: DATE_RANGE.FIFETEEN_PLUS_4,
|
||||||
|
isPercent: true,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -150,8 +150,8 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
This is a beta site.
|
This is a beta site.
|
||||||
</span>
|
</span>
|
||||||
<span>
|
<span>
|
||||||
It is an early, in-progress version of the tool with limited datasets
|
It is an early, in-progress version of the tool with limited datasets that will
|
||||||
that will be continuously updated.
|
be regularly updated.
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -150,8 +150,8 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
This is a beta site.
|
This is a beta site.
|
||||||
</span>
|
</span>
|
||||||
<span>
|
<span>
|
||||||
It is an early, in-progress version of the tool with limited datasets
|
It is an early, in-progress version of the tool with limited datasets that will
|
||||||
that will be continuously updated.
|
be regularly updated.
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -150,8 +150,8 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
This is a beta site.
|
This is a beta site.
|
||||||
</span>
|
</span>
|
||||||
<span>
|
<span>
|
||||||
It is an early, in-progress version of the tool with limited datasets
|
It is an early, in-progress version of the tool with limited datasets that will
|
||||||
that will be continuously updated.
|
be regularly updated.
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -575,7 +575,7 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
low median home value
|
low median home value
|
||||||
</a>
|
</a>
|
||||||
is at or less than
|
is at or less than
|
||||||
90th percentile OR at or above the 10th percentile for the
|
90th percentile OR at or above the 90th percentile for the
|
||||||
<a
|
<a
|
||||||
href="#house-burden"
|
href="#house-burden"
|
||||||
>
|
>
|
||||||
|
@ -836,9 +836,9 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
Percent of a block group's population in households where household income is at or below
|
Percent of a census tract's population in households where household income is at or below
|
||||||
200% of the federal poverty level.
|
200% of the federal poverty level.
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -850,7 +850,7 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
rel="noreferrer"
|
rel="noreferrer"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>
|
>
|
||||||
Census's American Community Survey.
|
Census's American Community Survey
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
@ -875,12 +875,12 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
Percent of agriculture value at risk from losses due to natural hazards. Calculated by dividing
|
Percent of agriculture value at risk from losses due to natural hazards. Calculated by dividing
|
||||||
the agriculture value at risk in a census tract by the total agriculture value in that census
|
the agriculture value at risk in a census tract by the total agriculture value in that census
|
||||||
tract. Fourteen natural hazards that have some link to climate change include: avalanche,
|
tract. Fourteen natural hazards that have some link to climate change include: avalanche,
|
||||||
coastal flooding, cold wave, drought, hail, heat wave, hurricane, ice storm, landslide,
|
coastal flooding, cold wave, drought, hail, heat wave, hurricane, ice storm, landslide,
|
||||||
riverine flooding, strong wind, tornado, wildfire, and winter weather.
|
riverine flooding, strong wind, tornado, wildfire, and winter weather.
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -917,12 +917,12 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
Percent of building value at risk from losses due to natural hazards. Calculated by dividing the
|
Percent of building value at risk from losses due to natural hazards. Calculated by dividing the
|
||||||
building value at risk in a census tract by the total building value in that census tract.
|
building value at risk in a census tract by the total building value in that census tract.
|
||||||
Fourteen natural hazards that have some link to climate change include: avalanche, coastal flooding,
|
Fourteen natural hazards that have some link to climate change include: avalanche,
|
||||||
cold wave, drought, hail, heat wave, hurricane, ice storm, landslide, riverine flooding, strong
|
coastal flooding, cold wave, drought, hail, heat wave, hurricane, ice storm, landslide,
|
||||||
wind, tornado, wildfire, and winter weather.
|
riverine flooding, strong wind, tornado, wildfire, and winter weather.
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -959,19 +959,18 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
Rate relative to the population in fatalities and injuries due to natural hazards each year.
|
Rate relative to the population in fatalities and injuries due to natural hazards each year.
|
||||||
Fourteen natural hazards that have some link to climate change include: avalanche, coastal
|
Fourteen natural hazards that have some link to climate change include: avalanche, coastal
|
||||||
flooding, cold wave, drought, hail, heat wave, hurricane, ice storm, landslide, riverine
|
flooding, cold wave, drought, hail, heat wave, hurricane, ice storm, landslide, riverine
|
||||||
flooding, strong wind, tornado, wildfire, and winter weather.
|
flooding, strong wind, tornado, wildfire, and winter weather.
|
||||||
Population loss is defined as the Spatial Hazard Events and Losses or National Centers
|
Population loss is defined as the Spatial Hazard Events and Losses or National Centers
|
||||||
for Environmental Information’s (NCEI) reported number of fatalities and injuries caused by the
|
for Environmental Information’s (NCEI) reported number of fatalities and injuries caused by the
|
||||||
hazard occurrence. To combine fatalities and injuries for the computation of population loss value,
|
hazard occurrence. To combine fatalities and injuries for the computation of population loss value,
|
||||||
an injury is counted as one-tenth (1/10) of a fatality. The NCEI Storm Events Database
|
an injury is counted as one-tenth (1/10) of a fatality. The NCEI Storm Events Database
|
||||||
classifies injuries and fatalities as direct or indirect. Both direct and indirect injuries
|
classifies injuries and fatalities as direct or indirect. Both direct and indirect injuries
|
||||||
and fatalities are counted as population loss. This total number of injuries and fatalities
|
and fatalities are counted as population loss. This total number of injuries and fatalities
|
||||||
is then divided by the population in the census tract to get a per-capita rate of population risk.
|
is then divided by the population in the census tract to get a per-capita rate of population risk.
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -1043,8 +1042,9 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
PM2.5 in the air
|
PM2.5 in the air
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
Fine inhalable particles, with diameters that are generally
|
|
||||||
2.5 micrometers and smaller.
|
Fine inhalable particles, with diameters that are generally 2.5 micrometers and smaller.
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -1056,8 +1056,11 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
rel="noreferrer"
|
rel="noreferrer"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>
|
>
|
||||||
Environmental Protection Agency (EPA) Office of Air
|
|
||||||
and Radiation (OAR) fusion of model and monitor data as compiled by EPA's EJSCREEN
|
Environmental Protection Agency (EPA) Office of Air and Radiation (OAR) fusion of model and monitor
|
||||||
|
data as compiled by EPA's EJSCREEN, sourced from EPA National Air Toxics Assessment (NATA), 2017
|
||||||
|
U.S. Department of Transportation (DOT) traffic data
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
@ -1081,7 +1084,9 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
Diesel particulate matter exposure
|
Diesel particulate matter exposure
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
Mixture of particles that is part of diesel exhaust in the air.
|
|
||||||
|
Mixture of particles that is part of diesel exhaust in the air.
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -1093,8 +1098,10 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
rel="noreferrer"
|
rel="noreferrer"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>
|
>
|
||||||
Environmental Protection Agency (EPA) National Air Toxics Assessment (NATA)
|
|
||||||
as compiled by EPA's EJSCREEN
|
Environmental Protection Agency (EPA) National Air Toxics Assessment (NATA)
|
||||||
|
as compiled by EPA's EJSCREEN
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
@ -1118,8 +1125,10 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
Traffic proximity and volume
|
Traffic proximity and volume
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
Count of vehicles (average annual daily traffic) at major roads
|
|
||||||
within 500 meters, divided by distance in meters (not km).
|
Count of vehicles (average annual daily traffic) at major roads
|
||||||
|
within 500 meters, divided by distance in meters (not km).
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -1131,7 +1140,9 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
rel="noreferrer"
|
rel="noreferrer"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>
|
>
|
||||||
Department of Transportation (DOT) traffic data as compiled by EPA's EJSCREEN
|
|
||||||
|
Department of Transportation (DOT) traffic data as compiled by EPA's EJSCREEN
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
@ -1156,9 +1167,9 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
The percent of households in a census tract that are both earning less than 80% of HUD Area Median
|
The percent of households in a census tract that are both earning less than 80% of HUD Area Median
|
||||||
Family Income by county and are paying greater than 30% of their income to housing costs.
|
Family Income by county and are paying greater than 30% of their income to housing costs.
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -1170,8 +1181,10 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
rel="noreferrer"
|
rel="noreferrer"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>
|
>
|
||||||
Department of Housing & Urban Development’s
|
|
||||||
(HUD) Comprehensive Housing Affordability Strategy dataset
|
Department of Housing & Urban Development’s
|
||||||
|
(HUD) Comprehensive Housing Affordability Strategy dataset
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
@ -1196,8 +1209,9 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
Percent of housing units built pre-1960, used as an indicator of potential lead paint exposure in
|
Percent of housing units built pre-1960, used as an indicator of potential lead paint exposure in
|
||||||
tracts with median home values less than 90th percentile
|
tracts with median home values less than 90th percentile
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -1233,7 +1247,9 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
Low median home value
|
Low median home value
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
Median home value of owner-occupied housing units in the census tract.
|
|
||||||
|
Median home value of owner-occupied housing units in the census tract.
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -1270,9 +1286,9 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
Count of hazardous waste facilities (Treatment, Storage, and Disposal Facilities and Large
|
Count of hazardous waste facilities (Treatment, Storage, and Disposal Facilities and Large
|
||||||
Quantity Generators) within 5 km (or nearest beyond 5 km), each divided by distance in kilometers.
|
Quantity Generators) within 5 km (or nearest beyond 5 km), each divided by distance in kilometers.
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -1285,16 +1301,16 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>
|
>
|
||||||
|
|
||||||
Environmental Protection Agency (EPA) Treatment Storage, and Disposal Facilities
|
Environmental Protection Agency (EPA) Treatment Storage, and Disposal Facilities
|
||||||
(TSDF) data calculated from EPA RCRA info database as compiled by EPA’s EJSCREEN
|
(TSDF) data calculated from EPA RCRA info database as compiled by EPA’s EJSCREEN
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<span>
|
<span>
|
||||||
Date range:
|
Date range:
|
||||||
</span>
|
</span>
|
||||||
2015-2020
|
2020
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<span>
|
<span>
|
||||||
|
@ -1312,8 +1328,9 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
Count of proposed or listed NPL - also known as superfund - sites within 5 km (or nearest one
|
Count of proposed or listed NPL - also known as superfund - sites within 5 km (or nearest one
|
||||||
beyond 5 km), each divided by distance in kilometers.
|
beyond 5 km), each divided by distance in kilometers.
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -1325,7 +1342,9 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
rel="noreferrer"
|
rel="noreferrer"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>
|
>
|
||||||
Environmental Protection Agency (EPA) CERCLIS database as compiled by EPA’s EJSCREEN
|
|
||||||
|
Environmental Protection Agency (EPA) CERCLIS database as compiled by EPA’s EJSCREEN
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
@ -1350,8 +1369,9 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
Count of RMP (potential chemical accident management plan) facilities within 5 km (or nearest
|
Count of RMP (potential chemical accident management plan) facilities within 5 km (or nearest
|
||||||
one beyond 5 km), each divided by distance in kilometers.
|
one beyond 5 km), each divided by distance in kilometers.
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -1363,7 +1383,9 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
rel="noreferrer"
|
rel="noreferrer"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>
|
>
|
||||||
Environmental Protection Agency (EPA) RMP database as compiled by EPA’s EJSCREEN
|
|
||||||
|
Environmental Protection Agency (EPA) RMP database as compiled by EPA’s EJSCREEN
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
@ -1376,7 +1398,7 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
<span>
|
<span>
|
||||||
Used in:
|
Used in:
|
||||||
</span>
|
</span>
|
||||||
Affordable and sustainable housing methodology
|
Reduction and remediation of legacy pollution methodology
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1387,8 +1409,10 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
Wastewater discharge
|
Wastewater discharge
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
Risk-Screening Environmental Indicators (RSEI) modeled Toxic Concentrations at
|
|
||||||
stream segments within 500 meters, divided by distance in kilometers (km).
|
Risk-Screening Environmental Indicators (RSEI) modeled Toxic Concentrations at
|
||||||
|
stream segments within 500 meters, divided by distance in kilometers (km).
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -1400,8 +1424,10 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
rel="noreferrer"
|
rel="noreferrer"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>
|
>
|
||||||
Environmental Protection Agency (EPA) Risk-Screening
|
|
||||||
Environmental Indicators (RSEI) Model as compiled by EPA's EJSCREEN
|
Environmental Protection Agency (EPA) Risk-Screening
|
||||||
|
Environmental Indicators (RSEI) Model as compiled by EPA's EJSCREEN
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
@ -1425,10 +1451,11 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
Asthma
|
Asthma
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
Weighted percent of people who answer “yes” both
|
|
||||||
to both of the following questions: “Have you ever been told by a doctor,
|
Weighted percent of people who answer “yes” to both of the following questions: “Have you ever
|
||||||
nurse, or other health professional that you have asthma?” and the question
|
been told by a doctor, nurse, or other health professional that you have asthma?” and the question
|
||||||
“Do you still have asthma?”
|
“Do you still have asthma?”
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -1440,7 +1467,9 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
rel="noreferrer"
|
rel="noreferrer"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>
|
>
|
||||||
Centers for Disease Control and Prevention (CDC) PLACES
|
|
||||||
|
Centers for Disease Control and Prevention (CDC) PLACES
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
@ -1464,9 +1493,11 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
Diabetes
|
Diabetes
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
Weighted percent of people ages 18 years and older who report having ever been
|
|
||||||
told by a doctor, nurse, or other health professionals that they have
|
Weighted percent of people ages 18 years and older who report having ever been
|
||||||
diabetes other than diabetes during pregnancy.
|
told by a doctor, nurse, or other health professionals that they have
|
||||||
|
diabetes other than diabetes during pregnancy.
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -1478,7 +1509,9 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
rel="noreferrer"
|
rel="noreferrer"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>
|
>
|
||||||
Centers for Disease Control and Prevention (CDC) PLACES
|
|
||||||
|
Centers for Disease Control and Prevention (CDC) PLACES
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
@ -1502,9 +1535,11 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
Heart disease
|
Heart disease
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
Weighted percent of people ages 18 years and older who report ever having been told
|
|
||||||
by a doctor, nurse, or other health professionals that they had angina or
|
Weighted percent of people ages 18 years and older who report ever having been told
|
||||||
coronary heart disease.
|
by a doctor, nurse, or other health professionals that they had angina or
|
||||||
|
coronary heart disease.
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -1516,7 +1551,9 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
rel="noreferrer"
|
rel="noreferrer"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>
|
>
|
||||||
Centers for Disease Control and Prevention (CDC) PLACES
|
|
||||||
|
Centers for Disease Control and Prevention (CDC) PLACES
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
@ -1541,13 +1578,22 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
Average number of years of life a person who has attained a given age can expect to live.
|
Average number of years of life a person who has attained a given age can expect to live.
|
||||||
Note: Unlike most of the other datasets, high values of this indicator indicate low burdens.
|
|
||||||
For percentile calculations, the percentile is calculated in reverse order, so that the tract with
|
<p>
|
||||||
the highest median income relative to area median income (lowest burden on this measure) is at the
|
<strong>
|
||||||
0th percentile, and the tract with the lowest median income relative to area median income
|
Note:
|
||||||
(highest burden on this measure) is at the 100th percentile.
|
</strong>
|
||||||
|
|
||||||
|
Unlike most of the other datasets, high values of this indicator indicate low burdens.
|
||||||
|
For percentile calculations, the percentile is calculated in reverse order, so that the tract with
|
||||||
|
the highest median income relative to area median income (lowest burden on this measure) is at the
|
||||||
|
0th percentile, and the tract with the lowest median income relative to area median income
|
||||||
|
(highest burden on this measure) is at the 100th percentile.
|
||||||
|
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -1559,7 +1605,9 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
rel="noreferrer"
|
rel="noreferrer"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>
|
>
|
||||||
CDC’s U.S. Small-area Life Expectancy Estimates Project (USALEEP)
|
|
||||||
|
CDC’s U.S. Small-area Life Expectancy Estimates Project (USALEEP)
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
@ -1583,7 +1631,9 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
Low median Income
|
Low median Income
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
Median income of the census tract calculated as a percent of the area’s median income.
|
|
||||||
|
Median income of the census tract calculated as a percent of the area’s median income.
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -1608,7 +1658,7 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
<span>
|
<span>
|
||||||
Used in:
|
Used in:
|
||||||
</span>
|
</span>
|
||||||
Training and workforce development
|
Training and workforce development methodology
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1620,8 +1670,8 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
The percent of limited speaking households, which are households where no one over age 14 speaks English well.
|
The percent of limited speaking households, which are households where no one over age 14 speaks English well.
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -1646,7 +1696,7 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
<span>
|
<span>
|
||||||
Used in:
|
Used in:
|
||||||
</span>
|
</span>
|
||||||
Training and workforce development
|
Training and workforce development methodology
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1657,7 +1707,9 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
Unemployment
|
Unemployment
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
Number of unemployed people as a percentage of the civilian labor force
|
|
||||||
|
Number of unemployed people as a percentage of the civilian labor force
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -1682,7 +1734,7 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
<span>
|
<span>
|
||||||
Used in:
|
Used in:
|
||||||
</span>
|
</span>
|
||||||
Training and workforce development
|
Training and workforce development methodology
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1693,7 +1745,10 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
Poverty
|
Poverty
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
Percent of a tract's population in households where the household income is at or below 100% of the federal poverty level.
|
|
||||||
|
Percent of a tract's population in households where the household income is at or below 100% of
|
||||||
|
the federal poverty level.
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -1718,7 +1773,7 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
<span>
|
<span>
|
||||||
Used in:
|
Used in:
|
||||||
</span>
|
</span>
|
||||||
Training and workforce development
|
Training and workforce development methodology
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1729,8 +1784,10 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
High school degree achievement rate
|
High school degree achievement rate
|
||||||
</h3>
|
</h3>
|
||||||
<div>
|
<div>
|
||||||
Percent of people ages 25 years or older in a census tract whose
|
|
||||||
education level is less than a high school diploma.
|
Percent (not percentile) of people ages 25 years or older in a census tract whose
|
||||||
|
education level is less than a high school diploma.
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -1755,7 +1812,7 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
|
||||||
<span>
|
<span>
|
||||||
Used in:
|
Used in:
|
||||||
</span>
|
</span>
|
||||||
Training and workforce development
|
Training and workforce development methodology
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -293,6 +293,12 @@ This section will outline styles that are component specific
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This is to allow the first child in the accordions which is the header showing INDICATOR and
|
||||||
|
// PERCENTILE (0-100) to push into the container's margin to match mock
|
||||||
|
.usa-accordion__content > *:first-child {
|
||||||
|
margin: -10px -20px 10px -20px;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
***************************************
|
***************************************
|
||||||
* TIMELINE / PROCESS LIST STYLES
|
* TIMELINE / PROCESS LIST STYLES
|
||||||
|
|
|
@ -3,6 +3,7 @@ import json
|
||||||
import pandas as pd
|
import pandas as pd
|
||||||
|
|
||||||
from data_pipeline.etl.base import ExtractTransformLoad
|
from data_pipeline.etl.base import ExtractTransformLoad
|
||||||
|
from data_pipeline.etl.score.etl_utils import floor_series
|
||||||
from data_pipeline.utils import get_module_logger, zip_files
|
from data_pipeline.utils import get_module_logger, zip_files
|
||||||
from data_pipeline.score import field_names
|
from data_pipeline.score import field_names
|
||||||
|
|
||||||
|
@ -207,13 +208,15 @@ class PostScoreETL(ExtractTransformLoad):
|
||||||
# filter the columns on full score
|
# filter the columns on full score
|
||||||
score_tiles = score_county_state_merged_df[tiles_score_column_titles]
|
score_tiles = score_county_state_merged_df[tiles_score_column_titles]
|
||||||
|
|
||||||
# round decimals
|
score_tiles[constants.TILES_SCORE_FLOAT_COLUMNS] = score_tiles[
|
||||||
decimals = pd.Series(
|
constants.TILES_SCORE_FLOAT_COLUMNS
|
||||||
[constants.TILES_ROUND_NUM_DECIMALS]
|
].apply(
|
||||||
* len(constants.TILES_SCORE_FLOAT_COLUMNS),
|
func=lambda series: floor_series(
|
||||||
index=constants.TILES_SCORE_FLOAT_COLUMNS,
|
series=series,
|
||||||
|
number_of_decimals=constants.TILES_ROUND_NUM_DECIMALS,
|
||||||
|
),
|
||||||
|
axis=0,
|
||||||
)
|
)
|
||||||
score_tiles = score_tiles.round(decimals)
|
|
||||||
|
|
||||||
# create indexes
|
# create indexes
|
||||||
score_tiles = score_tiles.rename(
|
score_tiles = score_tiles.rename(
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
import numpy as np
|
||||||
|
import pandas as pd
|
||||||
|
|
||||||
|
|
||||||
from data_pipeline.config import settings
|
from data_pipeline.config import settings
|
||||||
from data_pipeline.utils import (
|
from data_pipeline.utils import (
|
||||||
|
@ -48,3 +51,60 @@ def check_score_data_source(
|
||||||
"No local score tiles data found. Please use '-d aws` to fetch from AWS"
|
"No local score tiles data found. Please use '-d aws` to fetch from AWS"
|
||||||
)
|
)
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
|
||||||
|
|
||||||
|
def floor_series(series: pd.Series, number_of_decimals: int) -> pd.Series:
|
||||||
|
"""Floors all non-null numerical values to a specific number of decimal points
|
||||||
|
|
||||||
|
Args:
|
||||||
|
series (pd.Series): Input pandas series
|
||||||
|
number_of_decimals (int): Number of decimal points to floor all numerical values to
|
||||||
|
Returns:
|
||||||
|
floored_series (pd.Series): A Pandas Series of numerical values with appropriate number of decimal points
|
||||||
|
"""
|
||||||
|
|
||||||
|
# we perform many operations using the division operator
|
||||||
|
# as well as elementwise multiplication. The result of such
|
||||||
|
# operations can introduce such values, below, due to numerical
|
||||||
|
# instability. This results in unsafe type inference for numpy
|
||||||
|
# float types - exacerbated by panda's type inference engine.
|
||||||
|
# Hence, to handle such offending values we default to None
|
||||||
|
# Please see the reference, below, on nullable integer types for more details
|
||||||
|
unacceptable_values = [-np.inf, np.inf, "None", np.nan]
|
||||||
|
mapping = {
|
||||||
|
unacceptable_value: None for unacceptable_value in unacceptable_values
|
||||||
|
}
|
||||||
|
|
||||||
|
# ensure we are working with a numpy array (which is really what a pandas series is)
|
||||||
|
if not isinstance(series, pd.Series):
|
||||||
|
raise TypeError(
|
||||||
|
f"Argument series must be of type pandas series, not of type {type(series).__name__}."
|
||||||
|
)
|
||||||
|
|
||||||
|
# raise exception for handling empty series
|
||||||
|
if series.empty:
|
||||||
|
raise ValueError("Empty series provided.")
|
||||||
|
|
||||||
|
# if we have any values, just replace them with None
|
||||||
|
if series.isin(unacceptable_values).any():
|
||||||
|
series.replace(mapping, regex=False, inplace=True)
|
||||||
|
|
||||||
|
multiplication_factor = 10 ** number_of_decimals
|
||||||
|
|
||||||
|
# In order to safely cast NaNs
|
||||||
|
# First coerce series to float type: series.astype(float)
|
||||||
|
# Please see here:
|
||||||
|
# https://pandas.pydata.org/pandas-docs/stable/user_guide/integer_na.html#nullable-integer-data-type
|
||||||
|
product_for_numerator = np.floor(
|
||||||
|
series.astype(float) * multiplication_factor
|
||||||
|
)
|
||||||
|
|
||||||
|
floored_series = np.where(
|
||||||
|
series.isnull(),
|
||||||
|
# For all null values default to null
|
||||||
|
None,
|
||||||
|
# The other default condition - floor non-null values
|
||||||
|
product_for_numerator / multiplication_factor,
|
||||||
|
)
|
||||||
|
|
||||||
|
return floored_series
|
||||||
|
|
Binary file not shown.
|
@ -0,0 +1,72 @@
|
||||||
|
import pandas as pd
|
||||||
|
import numpy as np
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
from data_pipeline.etl.score.etl_utils import floor_series
|
||||||
|
|
||||||
|
|
||||||
|
def test_floor_series():
|
||||||
|
# test examples
|
||||||
|
series = pd.Series(data=[None, 1, 0.324534, 1.2341], dtype="float64")
|
||||||
|
series_exponentiated = pd.Series(
|
||||||
|
data=[
|
||||||
|
-np.inf,
|
||||||
|
np.inf,
|
||||||
|
"None",
|
||||||
|
-0.131321313123123,
|
||||||
|
5.62322441e-15,
|
||||||
|
1.2341123131313131312e12,
|
||||||
|
]
|
||||||
|
)
|
||||||
|
series_of_nan_values = pd.Series(data=[None, None, None, None, None])
|
||||||
|
series_empty = pd.Series(data=[], dtype="float64")
|
||||||
|
# list of randomly generated values
|
||||||
|
invalid_type = list(np.random.uniform(1, 1000000, size=15))
|
||||||
|
|
||||||
|
floored_series_1 = floor_series(series, number_of_decimals=2)
|
||||||
|
floored_series_2 = floor_series(series, number_of_decimals=3)
|
||||||
|
floored_series_3 = floor_series(series, number_of_decimals=1)
|
||||||
|
floored_series_4 = floor_series(series_of_nan_values, number_of_decimals=10)
|
||||||
|
floored_series_5 = floor_series(series_exponentiated, number_of_decimals=1)
|
||||||
|
# expected fixtures
|
||||||
|
expected_1 = np.array([None, 1.0, 0.32, 1.23])
|
||||||
|
expected_2 = np.array([None, 1.00, 0.324, 1.234])
|
||||||
|
expected_3 = np.array([None, 1.0, 0.3, 1.2])
|
||||||
|
expected_4 = np.array([None, None, None, None, None])
|
||||||
|
expected_5 = np.array([None, None, None, -0.2, 0.0, 1234112313131.3])
|
||||||
|
|
||||||
|
# Test for expected value with 2 decimal places
|
||||||
|
# Elewentwise comparison to ensure all values are equal
|
||||||
|
all_elements_are_equal_one = np.equal(expected_1, floored_series_1)
|
||||||
|
assert all_elements_are_equal_one.all()
|
||||||
|
|
||||||
|
# Test for expected value with 3 decimal places
|
||||||
|
# Elewentwise comparison to ensure all values are equal
|
||||||
|
all_elements_are_equal_two = np.equal(expected_2, floored_series_2)
|
||||||
|
assert all_elements_are_equal_two.all()
|
||||||
|
|
||||||
|
# Test for expected value with 1 decimal place
|
||||||
|
# Elewentwise comparison to ensure all values are equal
|
||||||
|
all_elements_are_equal_three = np.equal(expected_3, floored_series_3)
|
||||||
|
assert all_elements_are_equal_three.all()
|
||||||
|
|
||||||
|
# Test for expected value for some arbitrary decimal place
|
||||||
|
# Elewentwise comparison to ensure all values are equal for NaN
|
||||||
|
all_elements_are_equal_four = np.equal(expected_4, floored_series_4)
|
||||||
|
assert all_elements_are_equal_four.all()
|
||||||
|
# Test for expected value for some arbitrary decimal place
|
||||||
|
# Elewentwise comparison to ensure all floating point imprecision
|
||||||
|
# is clamped to a certain number of decimal points
|
||||||
|
all_elements_are_equal_five = np.equal(expected_5, floored_series_5)
|
||||||
|
assert all_elements_are_equal_five.all()
|
||||||
|
|
||||||
|
# Test for empty series - should raise a ValueError exception
|
||||||
|
with pytest.raises(ValueError, match="Empty series provided."):
|
||||||
|
floor_series(series_empty, number_of_decimals=2)
|
||||||
|
|
||||||
|
# Test for invalid type - should raise a TypeError exception
|
||||||
|
with pytest.raises(
|
||||||
|
TypeError,
|
||||||
|
match="Argument series must be of type pandas series, not of type list.",
|
||||||
|
):
|
||||||
|
floor_series(invalid_type, number_of_decimals=3)
|
|
@ -95,9 +95,13 @@ class EnergyDefinitionAlternativeDraft(ExtractTransformLoad):
|
||||||
)
|
)
|
||||||
|
|
||||||
# Convert to boolean:
|
# Convert to boolean:
|
||||||
self.df[field_names.ENERGY_RELATED_COMMUNITIES_DEFINITION_ALTERNATIVE] = \
|
self.df[
|
||||||
self.df[field_names.ENERGY_RELATED_COMMUNITIES_DEFINITION_ALTERNATIVE
|
field_names.ENERGY_RELATED_COMMUNITIES_DEFINITION_ALTERNATIVE
|
||||||
].astype('bool')
|
] = self.df[
|
||||||
|
field_names.ENERGY_RELATED_COMMUNITIES_DEFINITION_ALTERNATIVE
|
||||||
|
].astype(
|
||||||
|
"bool"
|
||||||
|
)
|
||||||
|
|
||||||
def validate(self) -> None:
|
def validate(self) -> None:
|
||||||
logger.info("Validating data")
|
logger.info("Validating data")
|
||||||
|
|
|
@ -1,48 +1,39 @@
|
||||||
appnope==0.1.2; sys_platform == "darwin" and python_version >= "3.7" and platform_system == "Darwin"
|
appnope==0.1.2; sys_platform == "darwin" and python_version >= "3.7" and platform_system == "Darwin"
|
||||||
argcomplete==1.12.3; python_version < "3.8.0" and python_version >= "3.7"
|
argcomplete==1.12.3; python_version < "3.8.0" and python_version >= "3.7"
|
||||||
argon2-cffi==21.1.0; python_version >= "3.6"
|
argon2-cffi==21.1.0; python_version >= "3.6"
|
||||||
astroid==2.8.0; python_version >= "3.6" and python_version < "4.0"
|
astroid==2.8.3; python_version >= "3.6" and python_version < "4.0"
|
||||||
atomicwrites==1.4.0; python_version >= "3.6" and python_full_version < "3.0.0" and sys_platform == "win32" or sys_platform == "win32" and python_version >= "3.6" and python_full_version >= "3.4.0"
|
attrs==21.2.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7"
|
||||||
attrs==21.2.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6"
|
|
||||||
backcall==0.2.0; python_version >= "3.7"
|
backcall==0.2.0; python_version >= "3.7"
|
||||||
backports.entry-points-selectable==1.1.0; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "2.7"
|
|
||||||
black==21.9b0; python_full_version >= "3.6.2"
|
|
||||||
bleach==4.1.0; python_version >= "3.7"
|
bleach==4.1.0; python_version >= "3.7"
|
||||||
censusdata==1.15; python_version >= "2.7"
|
censusdata==1.15; python_version >= "2.7"
|
||||||
certifi==2021.5.30; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7"
|
certifi==2021.10.8; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7"
|
||||||
cffi==1.14.6; implementation_name == "pypy" and python_version >= "3.6"
|
cffi==1.15.0; implementation_name == "pypy" and python_version >= "3.7" and python_full_version >= "3.6.1"
|
||||||
charset-normalizer==2.0.6; python_full_version >= "3.6.0" and python_version >= "3"
|
charset-normalizer==2.0.7; python_full_version >= "3.6.0" and python_version >= "3"
|
||||||
click-plugins==1.1.1; python_version >= "3.6"
|
click-plugins==1.1.1; python_version >= "3.6"
|
||||||
click==8.0.1; python_version >= "3.6"
|
click==8.0.3; python_version >= "3.6"
|
||||||
cligj==0.7.2; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version < "4" and python_version >= "3.6"
|
cligj==0.7.2; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version < "4" and python_version >= "3.6"
|
||||||
colorama==0.4.4; platform_system == "Windows" and python_version >= "3.7" and python_full_version >= "3.6.2" and sys_platform == "win32" and python_version < "4.0" and (python_version >= "3.6" and python_full_version < "3.0.0" and sys_platform == "win32" or sys_platform == "win32" and python_version >= "3.6" and python_full_version >= "3.5.0") and (python_version >= "3.7" and python_full_version < "3.0.0" and sys_platform == "win32" or sys_platform == "win32" and python_version >= "3.7" and python_full_version >= "3.5.0")
|
colorama==0.4.4; python_version >= "3.7" and python_full_version < "3.0.0" and platform_system == "Windows" and sys_platform == "win32" and python_version < "4.0" or platform_system == "Windows" and python_version >= "3.7" and python_full_version >= "3.5.0" and sys_platform == "win32" and python_version < "4.0"
|
||||||
configparser==5.0.2; python_version >= "3.6"
|
|
||||||
cycler==0.10.0; python_version >= "3.7"
|
cycler==0.10.0; python_version >= "3.7"
|
||||||
debugpy==1.4.3; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7"
|
debugpy==1.5.1; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7"
|
||||||
decorator==5.1.0; python_version >= "3.7"
|
decorator==5.1.0; python_version >= "3.7"
|
||||||
defusedxml==0.7.1; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7"
|
defusedxml==0.7.1; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7"
|
||||||
distlib==0.3.2; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0"
|
|
||||||
dparse==0.5.1; python_version >= "3.5"
|
|
||||||
dynaconf==3.1.7; python_version >= "3.7"
|
dynaconf==3.1.7; python_version >= "3.7"
|
||||||
entrypoints==0.3; python_full_version >= "3.6.1" and python_version >= "3.7"
|
entrypoints==0.3; python_full_version >= "3.6.1" and python_version >= "3.7"
|
||||||
et-xmlfile==1.1.0; python_version >= "3.6"
|
|
||||||
filelock==3.0.12; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0"
|
|
||||||
fiona==1.8.20; python_version >= "3.6"
|
fiona==1.8.20; python_version >= "3.6"
|
||||||
flake8==3.9.2; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.5.0")
|
|
||||||
geopandas==0.9.0; python_version >= "3.6"
|
geopandas==0.9.0; python_version >= "3.6"
|
||||||
idna==3.2; python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.5"
|
idna==3.3; python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.5"
|
||||||
importlib-metadata==4.8.1; python_version == "3.7" and (python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "3.8" or python_full_version >= "3.5.0" and python_version < "3.8" and python_version >= "3.6") and python_full_version >= "3.6.2"
|
importlib-metadata==4.8.1; python_version == "3.7"
|
||||||
iniconfig==1.1.1; python_version >= "3.6"
|
ipdb==0.13.9; python_version >= "2.7"
|
||||||
ipykernel==6.4.1; python_version >= "3.7"
|
ipykernel==6.4.2; python_version >= "3.7"
|
||||||
ipython-genutils==0.2.0; python_version >= "3.7"
|
ipython-genutils==0.2.0; python_version >= "3.7"
|
||||||
ipython==7.27.0; python_version >= "3.7"
|
ipython==7.28.0; python_version >= "3.7"
|
||||||
ipywidgets==7.6.5
|
ipywidgets==7.6.5
|
||||||
isort==5.9.3; python_full_version >= "3.6.1" and python_version < "4.0" and python_version >= "3.6"
|
isort==5.9.3; python_full_version >= "3.6.1" and python_version < "4.0" and python_version >= "3.6"
|
||||||
jedi==0.18.0; python_version >= "3.7"
|
jedi==0.18.0; python_version >= "3.7"
|
||||||
jellyfish==0.6.1
|
jellyfish==0.6.1
|
||||||
jinja2==3.0.1; python_version >= "3.7"
|
jinja2==3.0.2; python_version >= "3.7"
|
||||||
jsonschema==3.2.0; python_version >= "3.5"
|
jsonschema==4.1.2; python_version >= "3.7"
|
||||||
jupyter-client==7.0.3; python_full_version >= "3.6.1" and python_version >= "3.7"
|
jupyter-client==7.0.6; python_full_version >= "3.6.1" and python_version >= "3.7"
|
||||||
jupyter-console==6.4.0; python_version >= "3.6"
|
jupyter-console==6.4.0; python_version >= "3.6"
|
||||||
jupyter-contrib-core==0.3.3
|
jupyter-contrib-core==0.3.3
|
||||||
jupyter-contrib-nbextensions==0.5.1
|
jupyter-contrib-nbextensions==0.5.1
|
||||||
|
@ -55,79 +46,64 @@ jupyterlab-pygments==0.1.2; python_version >= "3.7"
|
||||||
jupyterlab-widgets==1.0.2; python_version >= "3.6"
|
jupyterlab-widgets==1.0.2; python_version >= "3.6"
|
||||||
kiwisolver==1.3.2; python_version >= "3.7"
|
kiwisolver==1.3.2; python_version >= "3.7"
|
||||||
lazy-object-proxy==1.6.0; python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.6.0"
|
lazy-object-proxy==1.6.0; python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.6.0"
|
||||||
liccheck==0.6.2; python_version >= "2.7"
|
lxml==4.6.5; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0"
|
||||||
lxml==4.6.3; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0"
|
|
||||||
markupsafe==2.0.1; python_version >= "3.7"
|
markupsafe==2.0.1; python_version >= "3.7"
|
||||||
matplotlib-inline==0.1.3; python_version >= "3.7"
|
matplotlib-inline==0.1.3; python_version >= "3.7"
|
||||||
matplotlib==3.4.3; python_version >= "3.7"
|
matplotlib==3.4.3; python_version >= "3.7"
|
||||||
mccabe==0.6.1; python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.5.0"
|
mccabe==0.6.1; python_version >= "3.6" and python_version < "4.0"
|
||||||
mistune==0.8.4; python_version >= "3.7"
|
mistune==0.8.4; python_version >= "3.7"
|
||||||
munch==2.5.0; python_version >= "3.6"
|
munch==2.5.0; python_version >= "3.6"
|
||||||
mypy-extensions==0.4.3; python_full_version >= "3.6.2" and python_version >= "3.5"
|
|
||||||
mypy==0.910; python_version >= "3.5"
|
|
||||||
nbclient==0.5.4; python_full_version >= "3.6.1" and python_version >= "3.7"
|
nbclient==0.5.4; python_full_version >= "3.6.1" and python_version >= "3.7"
|
||||||
nbconvert==6.1.0; python_version >= "3.7"
|
nbconvert==6.2.0; python_version >= "3.7"
|
||||||
nbformat==5.1.3; python_full_version >= "3.6.1" and python_version >= "3.7"
|
nbformat==5.1.3; python_full_version >= "3.6.1" and python_version >= "3.7"
|
||||||
nest-asyncio==1.5.1; python_full_version >= "3.6.1" and python_version >= "3.7"
|
nest-asyncio==1.5.1; python_full_version >= "3.6.1" and python_version >= "3.7"
|
||||||
notebook==6.4.4; python_version >= "3.6"
|
notebook==6.4.5; python_version >= "3.6"
|
||||||
numpy==1.21.1; python_version >= "3.7"
|
numpy==1.21.1; python_version >= "3.7"
|
||||||
openpyxl==3.0.7; python_version >= "3.6"
|
packaging==21.0; python_version >= "3.7"
|
||||||
packaging==21.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7"
|
pandas==1.3.4; python_full_version >= "3.7.1"
|
||||||
pandas==1.3.3; python_full_version >= "3.7.1"
|
|
||||||
pandocfilters==1.5.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7"
|
pandocfilters==1.5.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7"
|
||||||
parso==0.8.2; python_version >= "3.7"
|
parso==0.8.2; python_version >= "3.7"
|
||||||
pathspec==0.9.0; python_full_version >= "3.6.2"
|
|
||||||
pexpect==4.8.0; sys_platform != "win32" and python_version >= "3.7"
|
pexpect==4.8.0; sys_platform != "win32" and python_version >= "3.7"
|
||||||
pickleshare==0.7.5; python_version >= "3.7"
|
pickleshare==0.7.5; python_version >= "3.7"
|
||||||
pillow==8.3.2; python_version >= "3.7"
|
pillow==8.4.0; python_version >= "3.7"
|
||||||
platformdirs==2.3.0; python_version >= "3.6" and python_full_version >= "3.6.2" and python_version < "4.0" and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6")
|
platformdirs==2.4.0; python_version >= "3.6" and python_version < "4.0"
|
||||||
pluggy==1.0.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6"
|
|
||||||
prometheus-client==0.11.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6"
|
prometheus-client==0.11.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6"
|
||||||
prompt-toolkit==3.0.20; python_full_version >= "3.6.2" and python_version >= "3.7"
|
prompt-toolkit==3.0.21; python_full_version >= "3.6.2" and python_version >= "3.7"
|
||||||
ptyprocess==0.7.0; sys_platform != "win32" and python_version >= "3.7" and os_name != "nt"
|
ptyprocess==0.7.0; sys_platform != "win32" and python_version >= "3.7" and os_name != "nt"
|
||||||
py==1.10.0; python_version >= "3.6" and python_full_version < "3.0.0" and implementation_name == "pypy" or python_full_version >= "3.5.0" and python_version >= "3.6" and implementation_name == "pypy"
|
py==1.10.0; implementation_name == "pypy" and python_version >= "3.7" and python_full_version >= "3.6.1"
|
||||||
pycodestyle==2.7.0; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0"
|
pycparser==2.20; implementation_name == "pypy" and python_version >= "3.7" and python_full_version >= "3.6.1"
|
||||||
pycparser==2.20; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6"
|
|
||||||
pyflakes==2.3.1; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0"
|
|
||||||
pygments==2.10.0; python_version >= "3.7"
|
pygments==2.10.0; python_version >= "3.7"
|
||||||
pylint==2.11.1; python_version >= "3.6" and python_version < "4.0"
|
pylint==2.11.1; python_version >= "3.6" and python_version < "4.0"
|
||||||
pypandoc==1.6.4
|
pypandoc==1.6.4
|
||||||
pyparsing==2.4.7; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.7"
|
pyparsing==2.4.7; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.7"
|
||||||
pyproj==3.2.1; python_version >= "3.7"
|
pyproj==3.2.1; python_version >= "3.7"
|
||||||
pyrsistent==0.18.0; python_version >= "3.6"
|
pyrsistent==0.18.0; python_version >= "3.7"
|
||||||
pytest-mock==3.6.1; python_version >= "3.6"
|
|
||||||
pytest==6.2.5; python_version >= "3.6"
|
|
||||||
python-dateutil==2.8.2; python_full_version >= "3.7.1" and python_version >= "3.7"
|
python-dateutil==2.8.2; python_full_version >= "3.7.1" and python_version >= "3.7"
|
||||||
pytz==2021.1; python_full_version >= "3.7.1" and python_version >= "2.7"
|
pytz==2021.3; python_full_version >= "3.7.1" and python_version >= "3.6"
|
||||||
pywin32==301; sys_platform == "win32" and platform_python_implementation != "PyPy" and python_version >= "3.6"
|
pywin32==302; sys_platform == "win32" and platform_python_implementation != "PyPy" and python_version >= "3.7"
|
||||||
pywinpty==1.1.4; os_name == "nt" and python_version >= "3.6"
|
pywinpty==1.1.4; os_name == "nt" and python_version >= "3.6"
|
||||||
pyyaml==5.4.1; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0"
|
pyyaml==6.0; python_version >= "3.6"
|
||||||
pyzmq==22.3.0; python_full_version >= "3.6.1" and python_version >= "3.7"
|
pyzmq==22.3.0; python_full_version >= "3.6.1" and python_version >= "3.7"
|
||||||
qtconsole==5.1.1; python_version >= "3.6"
|
qtconsole==5.1.1; python_version >= "3.6"
|
||||||
qtpy==1.11.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6"
|
qtpy==1.11.2; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6"
|
||||||
regex==2021.8.28; python_full_version >= "3.6.2"
|
|
||||||
requests==2.26.0; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.6.0")
|
requests==2.26.0; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.6.0")
|
||||||
safety==1.10.3; python_version >= "3.5"
|
|
||||||
semantic-version==2.8.5; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "2.7"
|
|
||||||
send2trash==1.8.0; python_version >= "3.6"
|
send2trash==1.8.0; python_version >= "3.6"
|
||||||
shapely==1.7.1; python_version >= "3.6"
|
shapely==1.7.1; python_version >= "3.6"
|
||||||
six==1.16.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7"
|
six==1.16.0; python_full_version >= "3.7.1" and python_version >= "3.7" and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.6") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.7")
|
||||||
terminado==0.12.1; python_version >= "3.6"
|
terminado==0.12.1; python_version >= "3.6"
|
||||||
testpath==0.5.0; python_version >= "3.7"
|
testpath==0.5.0; python_version >= "3.7"
|
||||||
toml==0.10.2; python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_full_version >= "3.5.0" and python_version >= "3.6" and python_version < "4.0"
|
toml==0.10.2; python_version > "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_full_version >= "3.3.0" and python_version > "3.6" and python_version < "4.0"
|
||||||
tomli==1.2.1; python_version >= "3.6" and python_full_version >= "3.6.2"
|
|
||||||
tornado==6.1; python_full_version >= "3.6.1" and python_version >= "3.7"
|
tornado==6.1; python_full_version >= "3.6.1" and python_version >= "3.7"
|
||||||
tox==3.24.4; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.5.0")
|
|
||||||
tqdm==4.62.0; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.4.0")
|
tqdm==4.62.0; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.4.0")
|
||||||
traitlets==5.1.0; python_full_version >= "3.6.1" and python_version >= "3.7"
|
traitlets==5.1.0; python_full_version >= "3.6.1" and python_version >= "3.7"
|
||||||
types-requests==2.25.8
|
typed-ast==1.4.3; implementation_name == "cpython" and python_version < "3.8" and python_version >= "3.6"
|
||||||
typing-extensions==3.10.0.2; python_version < "3.8" and python_version >= "3.6"
|
types-requests==2.25.11
|
||||||
urllib3==1.26.6; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version < "4" and python_version >= "2.7"
|
typing-extensions==3.10.0.2; python_version >= "3.6" and python_version < "3.8"
|
||||||
|
urllib3==1.26.7; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version < "4" and python_version >= "2.7"
|
||||||
us==2.0.2
|
us==2.0.2
|
||||||
virtualenv==20.8.0; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0"
|
|
||||||
wcwidth==0.2.5; python_full_version >= "3.6.2" and python_version >= "3.7"
|
wcwidth==0.2.5; python_full_version >= "3.6.2" and python_version >= "3.7"
|
||||||
webencodings==0.5.1; python_version >= "3.7"
|
webencodings==0.5.1; python_version >= "3.7"
|
||||||
widgetsnbextension==3.5.1
|
widgetsnbextension==3.5.1
|
||||||
wrapt==1.12.1; python_version >= "3.6" and python_version < "4.0"
|
wrapt==1.13.2; python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.5.0"
|
||||||
xlsxwriter==2.0.0
|
xlsxwriter==2.0.0
|
||||||
zipp==3.5.0; python_version < "3.8" and python_version >= "3.6"
|
zipp==3.6.0; python_version < "3.8" and python_version >= "3.6"
|
||||||
|
|
|
@ -7,19 +7,32 @@ skip_missing_interpreters = true
|
||||||
|
|
||||||
[testenv:lint]
|
[testenv:lint]
|
||||||
# lints python code in src and tests
|
# lints python code in src and tests
|
||||||
basepython = python3.9
|
|
||||||
deps = -rrequirements.txt
|
deps = -rrequirements.txt
|
||||||
|
# These are "external" because they are dev dependencies that not in
|
||||||
|
# "requirements.txt" and therefore not installed in this env, but they will be
|
||||||
|
# available where this is being run. See:
|
||||||
|
# https://stackoverflow.com/questions/47642747/tox-warningtest-command-found-but-not-installed-in-testenv
|
||||||
|
allowlist_externals = black
|
||||||
|
flake8
|
||||||
|
pylint
|
||||||
commands = black data_pipeline
|
commands = black data_pipeline
|
||||||
flake8 data_pipeline
|
flake8 data_pipeline
|
||||||
pylint data_pipeline
|
# Ignore tests this lint check because test dependencies are not installed here.
|
||||||
|
pylint data_pipeline --ignore tests
|
||||||
|
|
||||||
[testenv:checkdeps]
|
[testenv:checkdeps]
|
||||||
# checks the dependencies for security vulnerabilities and open source licenses
|
# checks the dependencies for security vulnerabilities and open source licenses
|
||||||
deps = -rrequirements.txt
|
deps = -rrequirements.txt
|
||||||
|
# These are "external" because they are dev dependencies that not in
|
||||||
|
# "requirements.txt" and therefore not installed in this env, but they will be
|
||||||
|
# available where this is being run. See:
|
||||||
|
# https://stackoverflow.com/questions/47642747/tox-warningtest-command-found-but-not-installed-in-testenv
|
||||||
|
allowlist_externals = safety
|
||||||
|
liccheck
|
||||||
commands = safety check
|
commands = safety check
|
||||||
liccheck
|
liccheck
|
||||||
|
|
||||||
[testenv:pytest]
|
[testenv:pytest]
|
||||||
# Run tests
|
# Run tests
|
||||||
deps = pytest
|
deps = pytest
|
||||||
commands = pytest
|
commands = pytest
|
||||||
|
|
|
@ -108,6 +108,7 @@ We provide more detail on these factors below.
|
||||||
- **Popularity** : According to [NPM Trends](https://www.npmtrends.com/mapbox-gl-vs-leaflet-vs-ol-vs-arcgis-js-api-vs-maplibre-gl) Mapbox-GL is the most downloaded package among those considered. More info [here](https://www.geoapify.com/map-libraries-comparison-leaflet-vs-mapbox-gl-vs-openlayers-trends-and-statistics)
|
- **Popularity** : According to [NPM Trends](https://www.npmtrends.com/mapbox-gl-vs-leaflet-vs-ol-vs-arcgis-js-api-vs-maplibre-gl) Mapbox-GL is the most downloaded package among those considered. More info [here](https://www.geoapify.com/map-libraries-comparison-leaflet-vs-mapbox-gl-vs-openlayers-trends-and-statistics)
|
||||||

|

|
||||||
|
|
||||||
|
<!-- markdown-link-check-disable -->
|
||||||
#### Mapbox-GL JS Cons
|
#### Mapbox-GL JS Cons
|
||||||
|
|
||||||
- **Licensing** : Mapbox's December 2020 [announcement](https://github.com/mapbox/mapbox-gl-js/releases/tag/v2.0.0) of version 2.0 of their software changed ther license to proprietary and changed their pricing scheme to cover tiles loaded from outside of their service. This decision was met with [some criticism](https://joemorrison.medium.com/death-of-an-open-source-business-model-62bc227a7e9b) in the open-source mapping community.
|
- **Licensing** : Mapbox's December 2020 [announcement](https://github.com/mapbox/mapbox-gl-js/releases/tag/v2.0.0) of version 2.0 of their software changed ther license to proprietary and changed their pricing scheme to cover tiles loaded from outside of their service. This decision was met with [some criticism](https://joemorrison.medium.com/death-of-an-open-source-business-model-62bc227a7e9b) in the open-source mapping community.
|
||||||
|
|
|
@ -49,11 +49,11 @@ Chosen option: Gatsby, because it seems to hit the balance between being simple
|
||||||
- Fairly good [documentation](https://www.gatsbyjs.com/docs)
|
- Fairly good [documentation](https://www.gatsbyjs.com/docs)
|
||||||
|
|
||||||
### Negative Consequences <!-- optional -->
|
### Negative Consequences <!-- optional -->
|
||||||
|
<!-- markdown-link-check-disable -->
|
||||||
- Test development environment ran out of memory. We debugged this further and could not replicate the problem on a new machine, but the original experience was annoying to work around and this [article](https://support.gatsbyjs.com/hc/en-us/articles/360053096273-Why-did-I-hit-Out-of-Memory-errors-) suggests it could be a more widespread problem.
|
- Test development environment ran out of memory. We debugged this further and could not replicate the problem on a new machine, but the original experience was annoying to work around and this [article](https://support.gatsbyjs.com/hc/en-us/articles/360053096273-Why-did-I-hit-Out-of-Memory-errors-) suggests it could be a more widespread problem.
|
||||||
- Local builds and refreshes feel slow compared to other frameworks on this list
|
- Local builds and refreshes feel slow compared to other frameworks on this list
|
||||||
- Seems a little more geared toward the blog usecase
|
- Seems a little more geared toward the blog usecase
|
||||||
|
<!-- markdown-link-check-enable -->
|
||||||
## Pros and Cons of the Options
|
## Pros and Cons of the Options
|
||||||
|
|
||||||
### Jekyll
|
### Jekyll
|
||||||
|
@ -75,7 +75,7 @@ Cons:
|
||||||
|
|
||||||
Pros:
|
Pros:
|
||||||
|
|
||||||
- By far the most commonly framework in this list - 1.4MM [total downloads](https://www.npmtrends.com/gatsby-vs-next-vs-nuxt-vs-vuepress-vs-create-react-app-vs-gridsome) as of May 2, 2021 . Gatsby, the second most-downloaded, has ~470,000
|
- By far the most commonly framework in this list - 1.4MM total downloads as of May 2, 2021 . Gatsby, the second most-downloaded, has ~470,000
|
||||||
- Used by a number of well-known [companies and brands](https://nextjs.org/showcase)
|
- Used by a number of well-known [companies and brands](https://nextjs.org/showcase)
|
||||||
- Flexible
|
- Flexible
|
||||||
- Mature tooling like `create-next-app`
|
- Mature tooling like `create-next-app`
|
||||||
|
|
3
docs/operations/README.md
Normal file
3
docs/operations/README.md
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# Operations Guides
|
||||||
|
|
||||||
|
This directory should have guides for operating any services that are being supported by the Justice40 team.
|
194
docs/operations/rollback-plan.md
Normal file
194
docs/operations/rollback-plan.md
Normal file
|
@ -0,0 +1,194 @@
|
||||||
|
# Rollback Plan
|
||||||
|
|
||||||
|
> Note: This guide is up to date as of [this commit](https://github.com/usds/justice40-tool/commit/0d57dd572be027a2fc8b1625958ed68c4b900653), 12/16/2021. If you want to sanity check that this guide is still relevant, go to [Rollback Details](#rollback-details).
|
||||||
|
|
||||||
|
## When To Rollback?
|
||||||
|
|
||||||
|
If for some reason the final map data that has been generated by the pipeline
|
||||||
|
has become incorrect or is missing, this page documents the emergency steps to
|
||||||
|
get the data back to a known good state.
|
||||||
|
|
||||||
|
## Rollback Theory
|
||||||
|
|
||||||
|
The theory of rollback depends on two things:
|
||||||
|
|
||||||
|
1. The s3 bucket containing our data uses [s3 bucket versioning](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html), allowing us to revert specific files back to a previous version.
|
||||||
|
2. The [Combine and Tileify step](https://github.com/usds/justice40-tool/blob/main/.github/workflows/combine-tilefy.yml) consumes only two files in s3 as input, making the strategy of reverting those files to a previous version a feasible way to run this job against a previous version.
|
||||||
|
|
||||||
|
If you feel confident in this and want to do the rollback now, proceed to [Rollback Steps](#rollback-steps).
|
||||||
|
|
||||||
|
If you want to understand more deeply what's going on, and sanity check that the
|
||||||
|
code hasn't changed since this guide was written, go to [Rollback Details](#rollback-details).
|
||||||
|
|
||||||
|
## Rollback Steps
|
||||||
|
|
||||||
|
### 1. List Object Versions
|
||||||
|
|
||||||
|
```shell
|
||||||
|
aws s3api list-object-versions \
|
||||||
|
--bucket justice40-data \
|
||||||
|
--prefix data-sources/census.zip \
|
||||||
|
--query "Versions[*].{Key:Key,VersionId:VersionId,LastModified:LastModified}"
|
||||||
|
```
|
||||||
|
|
||||||
|
You should get something like:
|
||||||
|
|
||||||
|
```
|
||||||
|
[
|
||||||
|
...
|
||||||
|
{
|
||||||
|
"Key": "data-sources/census.zip",
|
||||||
|
"VersionId": "<version_id>",
|
||||||
|
"LastModified": "2021-11-29T18:57:40+00:00"
|
||||||
|
}
|
||||||
|
...
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
Do the same thing with the score file:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
aws s3api list-object-versions \
|
||||||
|
--bucket justice40-data \
|
||||||
|
--prefix data-pipeline/data/score/csv/tiles/usa.csv \
|
||||||
|
--query "Versions[*].{Key:Key,VersionId:VersionId,LastModified:LastModified}"
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Download Previous Version
|
||||||
|
|
||||||
|
Based on the output from the commands above, select the `<version_id>` of the known good version of that file, and run the following command to download it:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
aws s3api get-object \
|
||||||
|
--bucket justice40-data \
|
||||||
|
--key data-sources/census.zip \
|
||||||
|
--version-id <version_id> \
|
||||||
|
census.zip
|
||||||
|
```
|
||||||
|
|
||||||
|
Do the same for the score file:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
aws s3api get-object \
|
||||||
|
--bucket justice40-data \
|
||||||
|
--key data-pipeline/data/score/csv/tiles/usa.csv \
|
||||||
|
--version-id <version_id> \
|
||||||
|
usa.csv
|
||||||
|
```
|
||||||
|
|
||||||
|
> Note: This command doesn't give you feedback like `curl` does on download progress, it just sits there. To verify the download is happening, open another terminal and check the output file size.
|
||||||
|
|
||||||
|
### 3. Upload New Version
|
||||||
|
|
||||||
|
After you've verified that the local files are correct, you can overwrite the
|
||||||
|
live versions by running a normal s3 copy:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
aws s3 cp census.zip s3://justice40-data/data-sources/census.zip
|
||||||
|
aws s3 cp usa.csv s3://justice40-data/data-pipeline/data/score/csv/tiles/usa.csv
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. Rerun Combine and Tileify
|
||||||
|
|
||||||
|
Run the [Combine and Tileify Github Action](https://github.com/usds/justice40-tool/actions/workflows/combine-tilefy.yml) to regenerate the map tiles from the data you just rolled back.
|
||||||
|
|
||||||
|
## Rollback Details
|
||||||
|
|
||||||
|
> Note: The links to the relevant code are included alongside the relevant snippets as a defense against this page becoming outdated. Make sure the code matches what the links point to, and verify that things still work as this guide assumes.
|
||||||
|
|
||||||
|
The relevant step that consumes the files from s3 should be in the [Combine and Tileify Job](https://github.com/usds/justice40-tool/blob/main/.github/workflows/combine-tilefy.yml#L56-L59):
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- name: Run Scripts
|
||||||
|
run: |
|
||||||
|
poetry run python3 data_pipeline/application.py geo-score -s aws
|
||||||
|
poetry run python3 data_pipeline/application.py generate-map-tiles
|
||||||
|
```
|
||||||
|
|
||||||
|
This runs the [`score_geo` task](https://github.com/usds/justice40-tool/blob/main/data/data-pipeline/data_pipeline/application.py#L166):
|
||||||
|
|
||||||
|
```python
|
||||||
|
score_geo(data_source=data_source)
|
||||||
|
```
|
||||||
|
|
||||||
|
This uses the [`GeoScoreETL` object to run the etl](https://github.com/usds/justice40-tool/blob/main/data/data-pipeline/data_pipeline/etl/runner.py#L121-L124):
|
||||||
|
|
||||||
|
```python
|
||||||
|
score_geo = GeoScoreETL(data_source=data_source)
|
||||||
|
score_geo.extract()
|
||||||
|
score_geo.transform()
|
||||||
|
score_geo.load()
|
||||||
|
```
|
||||||
|
|
||||||
|
In the extract step, `GeoScoreETL` calls [`check_census_data` and `check_score_data`](https://github.com/usds/justice40-tool/blob/main/data/data-pipeline/data_pipeline/etl/score/etl_score_geo.py#L57-L67):
|
||||||
|
|
||||||
|
```python
|
||||||
|
# check census data
|
||||||
|
check_census_data_source(
|
||||||
|
census_data_path=self.DATA_PATH / "census",
|
||||||
|
census_data_source=self.DATA_SOURCE,
|
||||||
|
)
|
||||||
|
|
||||||
|
# check score data
|
||||||
|
check_score_data_source(
|
||||||
|
score_csv_data_path=self.SCORE_CSV_PATH,
|
||||||
|
score_data_source=self.DATA_SOURCE,
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
The `check_score_data_source` function downloads [one file from s3](https://github.com/usds/justice40-tool/blob/main/data/data-pipeline/data_pipeline/etl/score/etl_utils.py#L32-L43):
|
||||||
|
|
||||||
|
```python
|
||||||
|
TILE_SCORE_CSV_S3_URL = (
|
||||||
|
settings.AWS_JUSTICE40_DATAPIPELINE_URL
|
||||||
|
+ "/data/score/csv/tiles/usa.csv"
|
||||||
|
)
|
||||||
|
TILE_SCORE_CSV = score_csv_data_path / "tiles" / "usa.csv"
|
||||||
|
|
||||||
|
# download from s3 if census_data_source is aws
|
||||||
|
if score_data_source == "aws":
|
||||||
|
logger.info("Fetching Score Tile data from AWS S3")
|
||||||
|
download_file_from_url(
|
||||||
|
file_url=TILE_SCORE_CSV_S3_URL, download_file_name=TILE_SCORE_CSV
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
This can be found here:
|
||||||
|
|
||||||
|
```
|
||||||
|
% aws s3 ls s3://justice40-data/data-pipeline/data/score/csv/tiles/usa.csv
|
||||||
|
2021-12-13 15:23:49 27845542 usa.csv
|
||||||
|
% curl --head https://justice40-data.s3.amazonaws.com/data-pipeline/data/score/csv/tiles/usa.csv
|
||||||
|
HTTP/1.1 200 OK
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
The `check_census_data_source` function downloads [one file from s3](https://github.com/usds/justice40-tool/blob/main/data/data-pipeline/data_pipeline/etl/sources/census/etl_utils.py#L99-L109):
|
||||||
|
|
||||||
|
```python
|
||||||
|
CENSUS_DATA_S3_URL = settings.AWS_JUSTICE40_DATASOURCES_URL + "/census.zip"
|
||||||
|
DATA_PATH = settings.APP_ROOT / "data"
|
||||||
|
|
||||||
|
# download from s3 if census_data_source is aws
|
||||||
|
if census_data_source == "aws":
|
||||||
|
logger.info("Fetching Census data from AWS S3")
|
||||||
|
unzip_file_from_url(
|
||||||
|
CENSUS_DATA_S3_URL,
|
||||||
|
DATA_PATH / "tmp",
|
||||||
|
DATA_PATH,
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
This can be found here:
|
||||||
|
|
||||||
|
```
|
||||||
|
% aws s3 ls s3://justice40-data/data-sources/census.zip
|
||||||
|
2021-11-29 13:57:40 845390373 census.zip
|
||||||
|
% curl --head https://justice40-data.s3.amazonaws.com/data-sources/census.zip
|
||||||
|
HTTP/1.1 200 OK
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
So this is how to see that the pipeline needs those two files. You can also confirm this in the [Combine and Tileify Github Action logs](https://github.com/usds/justice40-tool/actions/workflows/combine-tilefy.yml).
|
||||||
|
|
||||||
|
If you feel confident in this and want to do the rollback now, proceed to [Rollback Steps](#rollback-steps).
|
|
@ -14,6 +14,9 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"pattern": "^https://github.com/usds/environmental-justice/"
|
"pattern": "^https://github.com/usds/environmental-justice/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pattern": "^https://.*medium.com"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"replacementPatterns": [
|
"replacementPatterns": [
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue