From a7cdf1c0213d04f24c6d1954dbf2824a69d41eb2 Mon Sep 17 00:00:00 2001
From: Nat Hillard <72811320+NatHillardUSDS@users.noreply.github.com>
Date: Wed, 21 Jul 2021 16:10:32 -0400
Subject: [PATCH] Adding notebook to create score dissolve (#333)
---
.../ipython/Score_Dissolve_Script.ipynb | 914 ++++++++++++++++++
data/data-pipeline/poetry.lock | 335 +++++--
data/data-pipeline/pyproject.toml | 11 +-
3 files changed, 1184 insertions(+), 76 deletions(-)
create mode 100644 data/data-pipeline/ipython/Score_Dissolve_Script.ipynb
diff --git a/data/data-pipeline/ipython/Score_Dissolve_Script.ipynb b/data/data-pipeline/ipython/Score_Dissolve_Script.ipynb
new file mode 100644
index 00000000..747796aa
--- /dev/null
+++ b/data/data-pipeline/ipython/Score_Dissolve_Script.ipynb
@@ -0,0 +1,914 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "source": [
+ "import pandas as pd\n",
+ "import geopandas as gpd\n",
+ "import math\n",
+ "import pathlib\n",
+ "import os\n",
+ "import sys"
+ ],
+ "outputs": [],
+ "metadata": {}
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "source": [
+ "module_path = os.path.abspath(os.path.join(\"..\"))\n",
+ "if module_path not in sys.path:\n",
+ " sys.path.append(module_path)"
+ ],
+ "outputs": [],
+ "metadata": {}
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "source": [
+ "def merge_and_simplify_file(file_name: str, usa_df: pd.DataFrame):\n",
+ " state_gdf = gpd.read_file(file_name)\n",
+ " state_repr = state_gdf.to_crs(\"+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs\")\n",
+ " state_merged = state_repr.merge(usa_df, on=\"GEOID10\", how=\"left\")\n",
+ " state_merged_simplified = state_merged[\n",
+ " [\"GEOID10\", \"Score D (percentile)\", \"geometry\"]\n",
+ " ].reset_index(drop=True)\n",
+ " state_merged_simplified.rename(\n",
+ " columns={\"Score D (percentile)\": \"D_SCORE\"}, inplace=True\n",
+ " )\n",
+ " return state_merged_simplified\n",
+ "\n",
+ "\n",
+ "def aggregate_to_tracts(block_group_df: pd.DataFrame):\n",
+ " # The tract identifier is the first 11 digits of the GEOID\n",
+ " block_group_df[\"tract\"] = block_group_df.apply(\n",
+ " lambda row: row[\"GEOID10\"][0:11], axis=1\n",
+ " )\n",
+ " state_tracts = block_group_df.dissolve(by=\"tract\", aggfunc=\"mean\")\n",
+ " return state_tracts\n",
+ "\n",
+ "\n",
+ "def create_buckets_from_tracts(state_tracts: pd.DataFrame, num_buckets: int):\n",
+ " # assign tracts to buckets by D_SCORE\n",
+ " state_tracts.sort_values(\"D_SCORE\", inplace=True)\n",
+ " D_SCORE_bucket = []\n",
+ " num_buckets = num_buckets\n",
+ " bucket_size = math.ceil(len(state_tracts.index) / num_buckets)\n",
+ " for i in range(len(state_tracts.index)):\n",
+ " D_SCORE_bucket.extend([math.floor(i / bucket_size)])\n",
+ " state_tracts[\"D_SCORE_bucket\"] = D_SCORE_bucket\n",
+ " return state_tracts\n",
+ "\n",
+ "\n",
+ "def aggregate_buckets(state_tracts: pd.DataFrame, agg_func: str):\n",
+ " # dissolve tracts by bucket\n",
+ " state_attr = state_tracts[[\"D_SCORE\", \"D_SCORE_bucket\", \"geometry\"]].reset_index(\n",
+ " drop=True\n",
+ " )\n",
+ " state_dissolve = state_attr.dissolve(by=\"D_SCORE_bucket\", aggfunc=agg_func)\n",
+ " return state_dissolve\n",
+ "\n",
+ "\n",
+ "def breakup_multipolygons(state_bucketed_df: pd.DataFrame, num_buckets: int):\n",
+ " compressed = []\n",
+ " for i in range(num_buckets):\n",
+ " for j in range(len(state_bucketed_df[\"geometry\"][i].geoms)):\n",
+ " compressed.append(\n",
+ " [\n",
+ " state_bucketed_df[\"D_SCORE\"][i],\n",
+ " state_bucketed_df[\"geometry\"][i].geoms[j],\n",
+ " ]\n",
+ " )\n",
+ " return compressed\n",
+ "\n",
+ "\n",
+ "def write_to_file(compressed: pd.DataFrame, file_name: str):\n",
+ " gdf_compressed = gpd.GeoDataFrame(\n",
+ " compressed, columns=[\"D_SCORE\", \"geometry\"], crs=\"EPSG:4326\"\n",
+ " )\n",
+ " gdf_compressed.to_file(CENSUS_GEOJSON_DIR / f\"{file_name}_low.geojson\", driver=\"GeoJSON\")\n",
+ "\n",
+ "\n",
+ "def process_file(file_name: str, usa_df: pd.DataFrame, num_buckets:int):\n",
+ " print(f\"Processing file {file_name}...\")\n",
+ " state_merged_simplified = merge_and_simplify_file(file_name, usa_df)\n",
+ " state_tracts = aggregate_to_tracts(state_merged_simplified)\n",
+ " state_tracts = create_buckets_from_tracts(state_tracts, num_buckets)\n",
+ " state_bucketed_df = aggregate_buckets(state_tracts, \"mean\")\n",
+ " compressed = breakup_multipolygons(state_bucketed_df, num_buckets)\n",
+ " write_to_file(compressed, file_name)"
+ ],
+ "outputs": [],
+ "metadata": {}
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "source": [
+ "DATA_DIR = pathlib.Path.cwd().parent / \"data\"\n",
+ "CENSUS_GEOJSON_DIR = DATA_DIR / \"census\" / \"geojson\"\n",
+ "CEJST_DATA_PATH = DATA_DIR / \"score\" / \"csv\" / \"usa.csv\"\n",
+ "score_df = pd.read_csv(CEJST_DATA_PATH, dtype={\"GEOID10\": \"object\"})"
+ ],
+ "outputs": [],
+ "metadata": {
+ "id": "Ia5bqxS2LJqe"
+ }
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "source": [
+ "master_df = gpd.GeoDataFrame()"
+ ],
+ "outputs": [],
+ "metadata": {
+ "id": "Dtf5qD50JvCw"
+ }
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "source": [
+ "for file_name in CENSUS_GEOJSON_DIR.rglob('*.json'):\n",
+ " state_gdf = gpd.read_file(file_name)\n",
+ " master_df = master_df.append(state_gdf)"
+ ],
+ "outputs": [],
+ "metadata": {
+ "id": "PNdw8bERJyKk"
+ }
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "source": [
+ "master_df = master_df.to_crs(\"+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs\")"
+ ],
+ "outputs": [],
+ "metadata": {
+ "id": "B5SS9y2pLwks"
+ }
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "source": [
+ "master_df.shape"
+ ],
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "(220742, 13)"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 68
+ }
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "_C6vaR9HQeLa",
+ "outputId": "fab3bc7f-e716-431e-bc76-bd26289ea4a4"
+ }
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "source": [
+ "master_df.head(2)"
+ ],
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ " STATEFP10 ... geometry\n",
+ "0 01 ... POLYGON ((-85.17240 31.82508, -85.17334 31.824...\n",
+ "1 01 ... POLYGON ((-85.16283 31.81051, -85.16284 31.813...\n",
+ "\n",
+ "[2 rows x 13 columns]"
+ ],
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " STATEFP10 | \n",
+ " COUNTYFP10 | \n",
+ " TRACTCE10 | \n",
+ " BLKGRPCE10 | \n",
+ " GEOID10 | \n",
+ " NAMELSAD10 | \n",
+ " MTFCC10 | \n",
+ " FUNCSTAT10 | \n",
+ " ALAND10 | \n",
+ " AWATER10 | \n",
+ " INTPTLAT10 | \n",
+ " INTPTLON10 | \n",
+ " geometry | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 01 | \n",
+ " 005 | \n",
+ " 950500 | \n",
+ " 2 | \n",
+ " 010059505002 | \n",
+ " Block Group 2 | \n",
+ " G5030 | \n",
+ " S | \n",
+ " 191306077 | \n",
+ " 605058 | \n",
+ " +31.7728221 | \n",
+ " -085.3325011 | \n",
+ " POLYGON ((-85.17240 31.82508, -85.17334 31.824... | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 01 | \n",
+ " 005 | \n",
+ " 950500 | \n",
+ " 1 | \n",
+ " 010059505001 | \n",
+ " Block Group 1 | \n",
+ " G5030 | \n",
+ " S | \n",
+ " 44574612 | \n",
+ " 8952734 | \n",
+ " +31.7523221 | \n",
+ " -085.2009470 | \n",
+ " POLYGON ((-85.16283 31.81051, -85.16284 31.813... | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 69
+ }
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "oMoubjqCQiw5",
+ "outputId": "6195ffbc-6275-40c6-bb6a-e0a6bd1e71f0"
+ }
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "source": [
+ "usa_df = pd.read_csv(CEJST_DATA_PATH, dtype={\"GEOID10\": \"object\"})"
+ ],
+ "outputs": [],
+ "metadata": {
+ "id": "bAMmGSgzVml0"
+ }
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "source": [
+ "usa_merged = master_df.merge(usa_df, on=\"GEOID10\", how=\"left\")"
+ ],
+ "outputs": [],
+ "metadata": {
+ "id": "U7M7dExdV2Vh"
+ }
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "source": [
+ "usa_merged.head(2)"
+ ],
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ " STATEFP10 COUNTYFP10 ... Score E (percentile) Score E (top 25th percentile)\n",
+ "0 01 005 ... 0.576986 False\n",
+ "1 01 005 ... 0.670349 False\n",
+ "\n",
+ "[2 rows x 98 columns]"
+ ],
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " STATEFP10 | \n",
+ " COUNTYFP10 | \n",
+ " TRACTCE10 | \n",
+ " BLKGRPCE10 | \n",
+ " GEOID10 | \n",
+ " NAMELSAD10 | \n",
+ " MTFCC10 | \n",
+ " FUNCSTAT10 | \n",
+ " ALAND10 | \n",
+ " AWATER10 | \n",
+ " INTPTLAT10 | \n",
+ " INTPTLON10 | \n",
+ " geometry | \n",
+ " Housing burden (percent) | \n",
+ " Total population | \n",
+ " Air toxics cancer risk | \n",
+ " Respiratory hazard index | \n",
+ " Diesel particulate matter | \n",
+ " Particulate matter (PM2.5) | \n",
+ " Ozone | \n",
+ " Traffic proximity and volume | \n",
+ " Proximity to RMP sites | \n",
+ " Proximity to TSDF sites | \n",
+ " Proximity to NPL sites | \n",
+ " Wastewater discharge | \n",
+ " Percent pre-1960s housing (lead paint indicator) | \n",
+ " Individuals under 5 years old | \n",
+ " Individuals over 64 years old | \n",
+ " Linguistic isolation (percent) | \n",
+ " Percent of households in linguistic isolation | \n",
+ " Poverty (Less than 200% of federal poverty line) | \n",
+ " Percent individuals age 25 or over with less than high school degree | \n",
+ " Unemployed civilians (percent) | \n",
+ " Housing + Transportation Costs % Income for the Regional Typical Household | \n",
+ " GEOID10 (percentile) | \n",
+ " Housing burden (percent) (percentile) | \n",
+ " Total population (percentile) | \n",
+ " Air toxics cancer risk (percentile) | \n",
+ " Respiratory hazard index (percentile) | \n",
+ " Diesel particulate matter (percentile) | \n",
+ " ... | \n",
+ " Air toxics cancer risk (min-max normalized) | \n",
+ " Respiratory hazard index (min-max normalized) | \n",
+ " Diesel particulate matter (min-max normalized) | \n",
+ " Particulate matter (PM2.5) (min-max normalized) | \n",
+ " Ozone (min-max normalized) | \n",
+ " Traffic proximity and volume (min-max normalized) | \n",
+ " Proximity to RMP sites (min-max normalized) | \n",
+ " Proximity to TSDF sites (min-max normalized) | \n",
+ " Proximity to NPL sites (min-max normalized) | \n",
+ " Wastewater discharge (min-max normalized) | \n",
+ " Percent pre-1960s housing (lead paint indicator) (min-max normalized) | \n",
+ " Individuals under 5 years old (min-max normalized) | \n",
+ " Individuals over 64 years old (min-max normalized) | \n",
+ " Linguistic isolation (percent) (min-max normalized) | \n",
+ " Percent of households in linguistic isolation (min-max normalized) | \n",
+ " Poverty (Less than 200% of federal poverty line) (min-max normalized) | \n",
+ " Percent individuals age 25 or over with less than high school degree (min-max normalized) | \n",
+ " Unemployed civilians (percent) (min-max normalized) | \n",
+ " Housing + Transportation Costs % Income for the Regional Typical Household (min-max normalized) | \n",
+ " Score A | \n",
+ " Score B | \n",
+ " Socioeconomic Factors | \n",
+ " Sensitive populations | \n",
+ " Environmental effects | \n",
+ " Exposures | \n",
+ " Pollution Burden | \n",
+ " Population Characteristics | \n",
+ " Score C | \n",
+ " Score D | \n",
+ " Score E | \n",
+ " Score A (percentile) | \n",
+ " Score A (top 25th percentile) | \n",
+ " Score B (percentile) | \n",
+ " Score B (top 25th percentile) | \n",
+ " Score C (percentile) | \n",
+ " Score C (top 25th percentile) | \n",
+ " Score D (percentile) | \n",
+ " Score D (top 25th percentile) | \n",
+ " Score E (percentile) | \n",
+ " Score E (top 25th percentile) | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 01 | \n",
+ " 005 | \n",
+ " 950500 | \n",
+ " 2 | \n",
+ " 010059505002 | \n",
+ " Block Group 2 | \n",
+ " G5030 | \n",
+ " S | \n",
+ " 191306077 | \n",
+ " 605058 | \n",
+ " +31.7728221 | \n",
+ " -085.3325011 | \n",
+ " POLYGON ((-85.17240 31.82508, -85.17334 31.824... | \n",
+ " 0.176565 | \n",
+ " 923.0 | \n",
+ " 44.636463 | \n",
+ " 0.784089 | \n",
+ " 0.121767 | \n",
+ " 9.536056 | \n",
+ " 34.660008 | \n",
+ " 0.880242 | \n",
+ " 0.295180 | \n",
+ " 0.023752 | \n",
+ " 0.019262 | \n",
+ " 0.050677 | \n",
+ " 0.20177 | \n",
+ " 0.047671 | \n",
+ " 0.286024 | \n",
+ " 0.000000 | \n",
+ " 0.000000 | \n",
+ " 0.276273 | \n",
+ " 0.181102 | \n",
+ " 0.159836 | \n",
+ " 64.0 | \n",
+ " 0.000631 | \n",
+ " 0.25485 | \n",
+ " 0.272930 | \n",
+ " 0.944257 | \n",
+ " 0.982043 | \n",
+ " 0.082062 | \n",
+ " ... | \n",
+ " 0.025691 | \n",
+ " 0.181789 | \n",
+ " 0.020039 | \n",
+ " 0.444097 | \n",
+ " 0.190363 | \n",
+ " 0.000023 | \n",
+ " 0.016043 | \n",
+ " 0.000054 | \n",
+ " 0.002143 | \n",
+ " 1.179715e-07 | \n",
+ " 0.20177 | \n",
+ " 0.090801 | \n",
+ " 0.286024 | \n",
+ " 0.000000 | \n",
+ " 0.000000 | \n",
+ " 0.276273 | \n",
+ " 0.181102 | \n",
+ " 0.159836 | \n",
+ " 0.322034 | \n",
+ " 0.597295 | \n",
+ " 0.335222 | \n",
+ " 0.638895 | \n",
+ " 0.535636 | \n",
+ " 0.381877 | \n",
+ " 0.494252 | \n",
+ " 0.456794 | \n",
+ " 0.587265 | \n",
+ " 0.268259 | \n",
+ " 0.149124 | \n",
+ " 0.529853 | \n",
+ " 0.617238 | \n",
+ " False | \n",
+ " 0.61452 | \n",
+ " False | \n",
+ " 0.615988 | \n",
+ " False | \n",
+ " 0.565349 | \n",
+ " False | \n",
+ " 0.576986 | \n",
+ " False | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 01 | \n",
+ " 005 | \n",
+ " 950500 | \n",
+ " 1 | \n",
+ " 010059505001 | \n",
+ " Block Group 1 | \n",
+ " G5030 | \n",
+ " S | \n",
+ " 44574612 | \n",
+ " 8952734 | \n",
+ " +31.7523221 | \n",
+ " -085.2009470 | \n",
+ " POLYGON ((-85.16283 31.81051, -85.16284 31.813... | \n",
+ " 0.176565 | \n",
+ " 818.0 | \n",
+ " 44.636463 | \n",
+ " 0.784089 | \n",
+ " 0.121767 | \n",
+ " 9.536056 | \n",
+ " 34.660008 | \n",
+ " 60.055410 | \n",
+ " 0.232153 | \n",
+ " 0.027767 | \n",
+ " 0.018079 | \n",
+ " 0.007115 | \n",
+ " 0.00000 | \n",
+ " 0.007335 | \n",
+ " 0.264059 | \n",
+ " 0.039261 | \n",
+ " 0.038369 | \n",
+ " 0.391198 | \n",
+ " 0.186147 | \n",
+ " 0.053125 | \n",
+ " 80.0 | \n",
+ " 0.000626 | \n",
+ " 0.25485 | \n",
+ " 0.200764 | \n",
+ " 0.944257 | \n",
+ " 0.982043 | \n",
+ " 0.082062 | \n",
+ " ... | \n",
+ " 0.025691 | \n",
+ " 0.181789 | \n",
+ " 0.020039 | \n",
+ " 0.444097 | \n",
+ " 0.190363 | \n",
+ " 0.001598 | \n",
+ " 0.012618 | \n",
+ " 0.000063 | \n",
+ " 0.002011 | \n",
+ " 1.656256e-08 | \n",
+ " 0.00000 | \n",
+ " 0.013971 | \n",
+ " 0.264059 | \n",
+ " 0.039261 | \n",
+ " 0.038369 | \n",
+ " 0.391198 | \n",
+ " 0.186147 | \n",
+ " 0.053125 | \n",
+ " 0.412429 | \n",
+ " 0.693861 | \n",
+ " 0.477826 | \n",
+ " 0.728309 | \n",
+ " 0.557538 | \n",
+ " 0.264424 | \n",
+ " 0.530404 | \n",
+ " 0.441744 | \n",
+ " 0.642924 | \n",
+ " 0.284008 | \n",
+ " 0.159628 | \n",
+ " 0.589397 | \n",
+ " 0.723269 | \n",
+ " False | \n",
+ " 0.73044 | \n",
+ " False | \n",
+ " 0.661758 | \n",
+ " False | \n",
+ " 0.608434 | \n",
+ " False | \n",
+ " 0.670349 | \n",
+ " False | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
2 rows × 98 columns
\n",
+ "
"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 72
+ }
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "Sr25DUkxWVhg",
+ "outputId": "1e804075-0f7d-4174-82d7-e21b8519c8bf"
+ }
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "source": [
+ "usa_merged_compressed = gpd.GeoDataFrame(usa_merged, crs=\"EPSG:4326\")"
+ ],
+ "outputs": [],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "ANMlAB8Qmtu8",
+ "outputId": "44934741-90a9-4664-fab5-2c39b348d2be"
+ }
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "source": [
+ "usa_merged_compressed.to_file(CENSUS_GEOJSON_DIR / \"usa_merged.geojson\", driver=\"GeoJSON\")"
+ ],
+ "outputs": [],
+ "metadata": {
+ "id": "PBPD9LQctvPJ"
+ }
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "source": [
+ "usa_simplified = usa_merged[\n",
+ " [\"GEOID10\", \"Score D (percentile)\", \"geometry\"]\n",
+ " ].reset_index(drop=True)"
+ ],
+ "outputs": [],
+ "metadata": {
+ "id": "qAAEr1z-WZAT"
+ }
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "source": [
+ "usa_simplified.rename(\n",
+ " columns={\"Score D (percentile)\": \"D_SCORE\"}, inplace=True\n",
+ " )"
+ ],
+ "outputs": [],
+ "metadata": {
+ "id": "SCNUjEbzWg-o"
+ }
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "source": [
+ "usa_cbg_compressed = gpd.GeoDataFrame(\n",
+ " usa_simplified, columns=[\"D_SCORE\", \"geometry\"], crs=\"EPSG:4326\"\n",
+ " )"
+ ],
+ "outputs": [],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "Ej70uX0AmW0J",
+ "outputId": "88908f5e-b62d-494f-f0ea-649089b6652a"
+ }
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "source": [
+ "usa_cbg_compressed.to_file(CENSUS_GEOJSON_DIR / \"usa_cbg_scoreD.geojson\", driver=\"GeoJSON\")"
+ ],
+ "outputs": [],
+ "metadata": {
+ "id": "UE12dWmame3I"
+ }
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "source": [
+ "usa_tracts = aggregate_to_tracts(usa_simplified)"
+ ],
+ "outputs": [],
+ "metadata": {
+ "id": "wWFBduQQXGtM"
+ }
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 76,
+ "source": [
+ "num_buckets = 10"
+ ],
+ "outputs": [],
+ "metadata": {
+ "id": "L-PTnEWOpDtX"
+ }
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "source": [
+ "tracts_compressed = gpd.GeoDataFrame(\n",
+ " usa_tracts, columns=[\"D_SCORE\", \"geometry\"], crs=\"EPSG:4326\"\n",
+ " )"
+ ],
+ "outputs": [],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "kTJafXcqXC01",
+ "outputId": "bd197952-76b7-4f99-edef-983f20d7acfb"
+ }
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "source": [
+ "tracts_compressed.to_file(CENSUS_GEOJSON_DIR / \"usa_tracts_score.geojson\", driver=\"GeoJSON\")"
+ ],
+ "outputs": [],
+ "metadata": {
+ "id": "E2Nh97IlYhCF"
+ }
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "source": [
+ "usa_bucketed = create_buckets_from_tracts(usa_tracts)"
+ ],
+ "outputs": [],
+ "metadata": {
+ "id": "557zPMWFZC8R"
+ }
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "source": [
+ "usa_aggregated = aggregate_buckets(usa_bucketed, agg_func=\"mean\")"
+ ],
+ "outputs": [],
+ "metadata": {
+ "id": "k6RRdKlsaO0a"
+ }
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 80,
+ "source": [
+ "usa_aggregated.shape"
+ ],
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "(10, 2)"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 80
+ }
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "-cm5eET2pA1Z",
+ "outputId": "8d5d2e80-ad62-41d5-f1b0-922345f92d62"
+ }
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "source": [
+ "compressed = breakup_multipolygons(usa_aggregated, num_buckets)"
+ ],
+ "outputs": [],
+ "metadata": {
+ "id": "4ZvJra-RaZ4v"
+ }
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "source": [
+ "len(compressed)"
+ ],
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "36836"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 82
+ }
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "RDS7Q2WAb4Rx",
+ "outputId": "dcd28a31-083d-482e-b000-b4cd1046d4c2"
+ }
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "source": [
+ "gdf_compressed = gpd.GeoDataFrame(\n",
+ " compressed, columns=[\"D_SCORE\", \"geometry\"], crs=\"EPSG:4326\"\n",
+ " )"
+ ],
+ "outputs": [],
+ "metadata": {
+ "id": "VXTv8UuXb-qU"
+ }
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "source": [
+ "gdf_compressed.shape"
+ ],
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "(36836, 2)"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 84
+ }
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "5v7TyB_rcRgT",
+ "outputId": "997625cc-c57a-4335-9b27-a08e4f8ad117"
+ }
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "source": [
+ "gdf_compressed.to_file(CENSUS_GEOJSON_DIR / f\"usa_low.geojson\", driver=\"GeoJSON\")"
+ ],
+ "outputs": [],
+ "metadata": {
+ "id": "5eAnPL8McJpn"
+ }
+ }
+ ],
+ "metadata": {
+ "colab": {
+ "name": "Score_Dissolve_Script",
+ "provenance": []
+ },
+ "kernelspec": {
+ "display_name": "Python 3.9.5 ('.venv': venv)",
+ "language": "python",
+ "name": "python395jvsc74a57bd0935cbd69f49565f763db1e6a6adc70b468d078eb4d5856e64428cea33b57a041"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.9.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
\ No newline at end of file
diff --git a/data/data-pipeline/poetry.lock b/data/data-pipeline/poetry.lock
index 6b12b2e3..a9d22bff 100644
--- a/data/data-pipeline/poetry.lock
+++ b/data/data-pipeline/poetry.lock
@@ -63,7 +63,7 @@ python-versions = "*"
[[package]]
name = "black"
-version = "21.6b0"
+version = "21.7b0"
description = "The uncompromising code formatter."
category = "dev"
optional = false
@@ -75,7 +75,7 @@ click = ">=7.1.2"
mypy-extensions = ">=0.4.3"
pathspec = ">=0.8.1,<1"
regex = ">=2020.1.8"
-toml = ">=0.10.1"
+tomli = ">=0.2.6,<2.0.0"
typed-ast = {version = ">=1.4.2", markers = "python_version < \"3.8\""}
typing-extensions = {version = ">=3.7.4", markers = "python_version < \"3.8\""}
@@ -87,7 +87,7 @@ uvloop = ["uvloop (>=0.15.2)"]
[[package]]
name = "bleach"
-version = "3.3.0"
+version = "3.3.1"
description = "An easy safelist-based HTML-sanitizing tool."
category = "main"
optional = false
@@ -130,12 +130,15 @@ python-versions = "*"
pycparser = "*"
[[package]]
-name = "chardet"
-version = "4.0.0"
-description = "Universal encoding detector for Python 2 and 3"
+name = "charset-normalizer"
+version = "2.0.3"
+description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
category = "main"
optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+python-versions = ">=3.5.0"
+
+[package.extras]
+unicode_backport = ["unicodedata2"]
[[package]]
name = "click"
@@ -149,6 +152,34 @@ python-versions = ">=3.6"
colorama = {version = "*", markers = "platform_system == \"Windows\""}
importlib-metadata = {version = "*", markers = "python_version < \"3.8\""}
+[[package]]
+name = "click-plugins"
+version = "1.1.1"
+description = "An extension module for click to enable registering CLI commands via setuptools entry-points."
+category = "main"
+optional = false
+python-versions = "*"
+
+[package.dependencies]
+click = ">=4.0"
+
+[package.extras]
+dev = ["pytest (>=3.6)", "pytest-cov", "wheel", "coveralls"]
+
+[[package]]
+name = "cligj"
+version = "0.7.2"
+description = "Click params for commmand line interfaces to GeoJSON"
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, <4"
+
+[package.dependencies]
+click = ">=4.0"
+
+[package.extras]
+test = ["pytest-cov"]
+
[[package]]
name = "colorama"
version = "0.4.4"
@@ -206,13 +237,50 @@ category = "main"
optional = false
python-versions = ">=2.7"
+[[package]]
+name = "fiona"
+version = "1.8.20"
+description = "Fiona reads and writes spatial data files"
+category = "main"
+optional = false
+python-versions = "*"
+
+[package.dependencies]
+attrs = ">=17"
+certifi = "*"
+click = ">=4.0"
+click-plugins = ">=1.0"
+cligj = ">=0.5"
+munch = "*"
+six = ">=1.7"
+
+[package.extras]
+all = ["pytest (>=3)", "boto3 (>=1.2.4)", "pytest-cov", "shapely", "mock"]
+calc = ["shapely"]
+s3 = ["boto3 (>=1.2.4)"]
+test = ["pytest (>=3)", "pytest-cov", "boto3 (>=1.2.4)", "mock"]
+
+[[package]]
+name = "geopandas"
+version = "0.9.0"
+description = "Geographic pandas extensions"
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+fiona = ">=1.8"
+pandas = ">=0.24.0"
+pyproj = ">=2.2.0"
+shapely = ">=1.6"
+
[[package]]
name = "idna"
-version = "2.10"
+version = "3.2"
description = "Internationalized Domain Names in Applications (IDNA)"
category = "main"
optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+python-versions = ">=3.5"
[[package]]
name = "importlib-metadata"
@@ -232,20 +300,21 @@ testing = ["pytest (>=4.6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytes
[[package]]
name = "ipykernel"
-version = "6.0.1"
+version = "6.0.3"
description = "IPython Kernel for Jupyter"
category = "main"
optional = false
python-versions = ">=3.7"
[package.dependencies]
-debugpy = ">=1.0.0"
+appnope = {version = "*", markers = "platform_system == \"Darwin\""}
+debugpy = ">=1.0.0,<2.0"
importlib-metadata = {version = "<4", markers = "python_version < \"3.8.0\""}
-ipython = ">=7.23.1"
-jupyter-client = "*"
-matplotlib-inline = {version = ">=0.1.0,<0.2.0appnope", markers = "platform_system == \"Darwin\""}
-tornado = ">=4.2"
-traitlets = ">=4.1.0"
+ipython = ">=7.23.1,<8.0"
+jupyter-client = "<7.0"
+matplotlib-inline = ">=0.1.0,<0.2.0"
+tornado = ">=4.2,<7.0"
+traitlets = ">=4.1.0,<6.0"
[package.extras]
test = ["pytest (!=5.3.4)", "pytest-cov", "flaky", "nose", "ipyparallel"]
@@ -566,6 +635,21 @@ category = "main"
optional = false
python-versions = "*"
+[[package]]
+name = "munch"
+version = "2.5.0"
+description = "A dot-accessible dictionary (a la JavaScript objects)"
+category = "main"
+optional = false
+python-versions = "*"
+
+[package.dependencies]
+six = "*"
+
+[package.extras]
+testing = ["pytest", "coverage", "astroid (>=1.5.3,<1.6.0)", "pylint (>=1.7.2,<1.8.0)", "astroid (>=2.0)", "pylint (>=2.3.1,<2.4.0)"]
+yaml = ["PyYAML (>=5.1.0)"]
+
[[package]]
name = "mypy"
version = "0.910"
@@ -699,7 +783,7 @@ test = ["pytest", "coverage", "requests", "nbval", "selenium", "pytest-cov", "re
[[package]]
name = "numpy"
-version = "1.21.0"
+version = "1.21.1"
description = "NumPy is the fundamental package for array computing with Python."
category = "main"
optional = false
@@ -754,11 +838,11 @@ testing = ["docopt", "pytest (<6.0.0)"]
[[package]]
name = "pathspec"
-version = "0.8.1"
+version = "0.9.0"
description = "Utility library for gitignore style pattern matching of file paths."
category = "dev"
optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
[[package]]
name = "pexpect"
@@ -841,6 +925,17 @@ category = "main"
optional = false
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
+[[package]]
+name = "pyproj"
+version = "3.1.0"
+description = "Python interface to PROJ (cartographic projections and coordinate transformations library)"
+category = "main"
+optional = false
+python-versions = ">=3.7"
+
+[package.dependencies]
+certifi = "*"
+
[[package]]
name = "pyrsistent"
version = "0.18.0"
@@ -851,7 +946,7 @@ python-versions = ">=3.6"
[[package]]
name = "python-dateutil"
-version = "2.8.1"
+version = "2.8.2"
description = "Extensions to the standard Python datetime module"
category = "main"
optional = false
@@ -944,21 +1039,21 @@ python-versions = "*"
[[package]]
name = "requests"
-version = "2.25.1"
+version = "2.26.0"
description = "Python HTTP for Humans."
category = "main"
optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*"
[package.dependencies]
certifi = ">=2017.4.17"
-chardet = ">=3.0.2,<5"
-idna = ">=2.5,<3"
+charset-normalizer = {version = ">=2.0.0,<2.1.0", markers = "python_version >= \"3\""}
+idna = {version = ">=2.5,<4", markers = "python_version >= \"3\""}
urllib3 = ">=1.21.1,<1.27"
[package.extras]
-security = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)"]
socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"]
+use_chardet_on_py3 = ["chardet (>=3.0.2,<5)"]
[[package]]
name = "send2trash"
@@ -971,6 +1066,19 @@ python-versions = "*"
[package.extras]
win32 = ["pywin32"]
+[[package]]
+name = "shapely"
+version = "1.7.1"
+description = "Geometric objects, predicates, and operations"
+category = "main"
+optional = false
+python-versions = "*"
+
+[package.extras]
+all = ["numpy", "pytest", "pytest-cov"]
+test = ["pytest", "pytest-cov"]
+vectorized = ["numpy"]
+
[[package]]
name = "six"
version = "1.16.0"
@@ -1014,6 +1122,14 @@ category = "dev"
optional = false
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
+[[package]]
+name = "tomli"
+version = "1.0.4"
+description = "A lil' TOML parser"
+category = "dev"
+optional = false
+python-versions = ">=3.6"
+
[[package]]
name = "tornado"
version = "6.1"
@@ -1115,7 +1231,7 @@ testing = ["pytest (>=4.6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytes
[metadata]
lock-version = "1.1"
python-versions = "^3.7.1"
-content-hash = "52ad5ba35e7d93fa44ce1b0040073618f990a30bdd90b8828e7b3270bbaf8385"
+content-hash = "406b3a54060fb9905fca2ad0109ec916313f66a3c4f2bf79297877c521ce1820"
[metadata.files]
appdirs = [
@@ -1163,12 +1279,12 @@ backcall = [
{file = "backcall-0.2.0.tar.gz", hash = "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e"},
]
black = [
- {file = "black-21.6b0-py3-none-any.whl", hash = "sha256:dfb8c5a069012b2ab1e972e7b908f5fb42b6bbabcba0a788b86dc05067c7d9c7"},
- {file = "black-21.6b0.tar.gz", hash = "sha256:dc132348a88d103016726fe360cb9ede02cecf99b76e3660ce6c596be132ce04"},
+ {file = "black-21.7b0-py3-none-any.whl", hash = "sha256:1c7aa6ada8ee864db745b22790a32f94b2795c253a75d6d9b5e439ff10d23116"},
+ {file = "black-21.7b0.tar.gz", hash = "sha256:c8373c6491de9362e39271630b65b964607bc5c79c83783547d76c839b3aa219"},
]
bleach = [
- {file = "bleach-3.3.0-py2.py3-none-any.whl", hash = "sha256:6123ddc1052673e52bab52cdc955bcb57a015264a1c57d37bea2f6b817af0125"},
- {file = "bleach-3.3.0.tar.gz", hash = "sha256:98b3170739e5e83dd9dc19633f074727ad848cbedb6026708c8ac2d3b697a433"},
+ {file = "bleach-3.3.1-py2.py3-none-any.whl", hash = "sha256:ae976d7174bba988c0b632def82fdc94235756edfb14e6558a9c5be555c9fb78"},
+ {file = "bleach-3.3.1.tar.gz", hash = "sha256:306483a5a9795474160ad57fce3ddd1b50551e981eed8e15a582d34cef28aafa"},
]
censusdata = [
{file = "CensusData-1.13.tar.gz", hash = "sha256:c2cc6ea93cb704f84fe4dda84925884c220bdf5dc8e5dd1a4b63a068f6a16ba8"},
@@ -1219,14 +1335,22 @@ cffi = [
{file = "cffi-1.14.6-cp39-cp39-win_amd64.whl", hash = "sha256:818014c754cd3dba7229c0f5884396264d51ffb87ec86e927ef0be140bfdb0d2"},
{file = "cffi-1.14.6.tar.gz", hash = "sha256:c9a875ce9d7fe32887784274dd533c57909b7b1dcadcc128a2ac21331a9765dd"},
]
-chardet = [
- {file = "chardet-4.0.0-py2.py3-none-any.whl", hash = "sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5"},
- {file = "chardet-4.0.0.tar.gz", hash = "sha256:0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa"},
+charset-normalizer = [
+ {file = "charset-normalizer-2.0.3.tar.gz", hash = "sha256:c46c3ace2d744cfbdebceaa3c19ae691f53ae621b39fd7570f59d14fb7f2fd12"},
+ {file = "charset_normalizer-2.0.3-py3-none-any.whl", hash = "sha256:88fce3fa5b1a84fdcb3f603d889f723d1dd89b26059d0123ca435570e848d5e1"},
]
click = [
{file = "click-8.0.1-py3-none-any.whl", hash = "sha256:fba402a4a47334742d782209a7c79bc448911afe1149d07bdabdf480b3e2f4b6"},
{file = "click-8.0.1.tar.gz", hash = "sha256:8c04c11192119b1ef78ea049e0a6f0463e4c48ef00a30160c704337586f3ad7a"},
]
+click-plugins = [
+ {file = "click-plugins-1.1.1.tar.gz", hash = "sha256:46ab999744a9d831159c3411bb0c79346d94a444df9a3a3742e9ed63645f264b"},
+ {file = "click_plugins-1.1.1-py2.py3-none-any.whl", hash = "sha256:5d262006d3222f5057fd81e1623d4443e41dcda5dc815c06b442aa3c02889fc8"},
+]
+cligj = [
+ {file = "cligj-0.7.2-py3-none-any.whl", hash = "sha256:c1ca117dbce1fe20a5809dc96f01e1c2840f6dcc939b3ddbb1111bf330ba82df"},
+ {file = "cligj-0.7.2.tar.gz", hash = "sha256:a4bc13d623356b373c2c27c53dbd9c68cae5d526270bfa71f6c6fa69669c6b27"},
+]
colorama = [
{file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"},
{file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"},
@@ -1305,17 +1429,32 @@ entrypoints = [
{file = "entrypoints-0.3-py2.py3-none-any.whl", hash = "sha256:589f874b313739ad35be6e0cd7efde2a4e9b6fea91edcc34e58ecbb8dbe56d19"},
{file = "entrypoints-0.3.tar.gz", hash = "sha256:c70dd71abe5a8c85e55e12c19bd91ccfeec11a6e99044204511f9ed547d48451"},
]
+fiona = [
+ {file = "Fiona-1.8.20-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:02880556540e36ad6aac97687799d9b3093c354787a47bc0e73026c7fc15f1b3"},
+ {file = "Fiona-1.8.20-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:3f668c471fa2f8c9c0a9ca83639cb2c8dcc93edc3d93d43dba2f9e8da38ad53e"},
+ {file = "Fiona-1.8.20-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:54f81039e913d0f88728ef23edf5a69038dec94dea54f4c799f972ba8e2a7d40"},
+ {file = "Fiona-1.8.20-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:328340a448bed5c43d119f61f760368a04d13a302c59d2fccb051a3ff021f4b8"},
+ {file = "Fiona-1.8.20-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:03f910380dbe684730b59b817aa030e6e9a3ee79211b66c6db2d1c8fe6ea12de"},
+ {file = "Fiona-1.8.20-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:bef100ebd82afb9a4d67096216e82611b82ca9341330e4805832d7ff8c9bc1f7"},
+ {file = "Fiona-1.8.20-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5e1cef608c6de9039eaa65b395024096e3189ab0559a5a328c68c4690c3302ce"},
+ {file = "Fiona-1.8.20-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:e72e4a5b84ec410be531d4fe4c1a5c87c6c0e92d01116c145c0f1b33f81c8080"},
+ {file = "Fiona-1.8.20.tar.gz", hash = "sha256:a70502d2857b82f749c09cb0dea3726787747933a2a1599b5ab787d74e3c143b"},
+]
+geopandas = [
+ {file = "geopandas-0.9.0-py2.py3-none-any.whl", hash = "sha256:79f6e557ba0dba76eec44f8351b1c6b42a17c38f5f08fef347e98fe4dae563c7"},
+ {file = "geopandas-0.9.0.tar.gz", hash = "sha256:63972ab4dc44c4029f340600dcb83264eb8132dd22b104da0b654bef7f42630a"},
+]
idna = [
- {file = "idna-2.10-py2.py3-none-any.whl", hash = "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"},
- {file = "idna-2.10.tar.gz", hash = "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6"},
+ {file = "idna-3.2-py3-none-any.whl", hash = "sha256:14475042e284991034cb48e06f6851428fb14c4dc953acd9be9a5e95c7b6dd7a"},
+ {file = "idna-3.2.tar.gz", hash = "sha256:467fbad99067910785144ce333826c71fb0e63a425657295239737f7ecd125f3"},
]
importlib-metadata = [
{file = "importlib_metadata-3.10.1-py3-none-any.whl", hash = "sha256:2ec0faae539743ae6aaa84b49a169670a465f7f5d64e6add98388cc29fd1f2f6"},
{file = "importlib_metadata-3.10.1.tar.gz", hash = "sha256:c9356b657de65c53744046fa8f7358afe0714a1af7d570c00c3835c2d724a7c1"},
]
ipykernel = [
- {file = "ipykernel-6.0.1-py3-none-any.whl", hash = "sha256:9a8576cb70a70cc8c63b0b6671e5f4767917071204653a5934e9b2c8680cec74"},
- {file = "ipykernel-6.0.1.tar.gz", hash = "sha256:a4f51c53c7be3f93d75c25839183fa2dfa24908fc650dfd023b276c7a080dc73"},
+ {file = "ipykernel-6.0.3-py3-none-any.whl", hash = "sha256:9f9f41a14caf2fde2b7802446adf83885afcbf50585a46d6c687292599a3c3af"},
+ {file = "ipykernel-6.0.3.tar.gz", hash = "sha256:0df34a78c7e1422800d6078cde65ccdcdb859597046c338c759db4dbc535c58f"},
]
ipython = [
{file = "ipython-7.25.0-py3-none-any.whl", hash = "sha256:aa21412f2b04ad1a652e30564fff6b4de04726ce875eab222c8430edc6db383a"},
@@ -1476,6 +1615,10 @@ mistune = [
{file = "mistune-0.8.4-py2.py3-none-any.whl", hash = "sha256:88a1051873018da288eee8538d476dffe1262495144b33ecb586c4ab266bb8d4"},
{file = "mistune-0.8.4.tar.gz", hash = "sha256:59a3429db53c50b5c6bcc8a07f8848cb00d7dc8bdb431a4ab41920d201d4756e"},
]
+munch = [
+ {file = "munch-2.5.0-py2.py3-none-any.whl", hash = "sha256:6f44af89a2ce4ed04ff8de41f70b226b984db10a91dcc7b9ac2efc1c77022fdd"},
+ {file = "munch-2.5.0.tar.gz", hash = "sha256:2d735f6f24d4dba3417fa448cae40c6e896ec1fdab6cdb5e6510999758a4dbd2"},
+]
mypy = [
{file = "mypy-0.910-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:a155d80ea6cee511a3694b108c4494a39f42de11ee4e61e72bc424c490e46457"},
{file = "mypy-0.910-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:b94e4b785e304a04ea0828759172a15add27088520dc7e49ceade7834275bedb"},
@@ -1526,34 +1669,34 @@ notebook = [
{file = "notebook-6.4.0.tar.gz", hash = "sha256:9c4625e2a2aa49d6eae4ce20cbc3d8976db19267e32d2a304880e0c10bf8aef9"},
]
numpy = [
- {file = "numpy-1.21.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:d5caa946a9f55511e76446e170bdad1d12d6b54e17a2afe7b189112ed4412bb8"},
- {file = "numpy-1.21.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:ac4fd578322842dbda8d968e3962e9f22e862b6ec6e3378e7415625915e2da4d"},
- {file = "numpy-1.21.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:598fe100b2948465cf3ed64b1a326424b5e4be2670552066e17dfaa67246011d"},
- {file = "numpy-1.21.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7c55407f739f0bfcec67d0df49103f9333edc870061358ac8a8c9e37ea02fcd2"},
- {file = "numpy-1.21.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:75579acbadbf74e3afd1153da6177f846212ea2a0cc77de53523ae02c9256513"},
- {file = "numpy-1.21.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:cc367c86eb87e5b7c9592935620f22d13b090c609f1b27e49600cd033b529f54"},
- {file = "numpy-1.21.0-cp37-cp37m-win32.whl", hash = "sha256:d89b0dc7f005090e32bb4f9bf796e1dcca6b52243caf1803fdd2b748d8561f63"},
- {file = "numpy-1.21.0-cp37-cp37m-win_amd64.whl", hash = "sha256:eda2829af498946c59d8585a9fd74da3f810866e05f8df03a86f70079c7531dd"},
- {file = "numpy-1.21.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:1a784e8ff7ea2a32e393cc53eb0003eca1597c7ca628227e34ce34eb11645a0e"},
- {file = "numpy-1.21.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bba474a87496d96e61461f7306fba2ebba127bed7836212c360f144d1e72ac54"},
- {file = "numpy-1.21.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:fd0a359c1c17f00cb37de2969984a74320970e0ceef4808c32e00773b06649d9"},
- {file = "numpy-1.21.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:e4d5a86a5257843a18fb1220c5f1c199532bc5d24e849ed4b0289fb59fbd4d8f"},
- {file = "numpy-1.21.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:620732f42259eb2c4642761bd324462a01cdd13dd111740ce3d344992dd8492f"},
- {file = "numpy-1.21.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9205711e5440954f861ceeea8f1b415d7dd15214add2e878b4d1cf2bcb1a914"},
- {file = "numpy-1.21.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ad09f55cc95ed8d80d8ab2052f78cc21cb231764de73e229140d81ff49d8145e"},
- {file = "numpy-1.21.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:a1f2fb2da242568af0271455b89aee0f71e4e032086ee2b4c5098945d0e11cf6"},
- {file = "numpy-1.21.0-cp38-cp38-win32.whl", hash = "sha256:e58ddb53a7b4959932f5582ac455ff90dcb05fac3f8dcc8079498d43afbbde6c"},
- {file = "numpy-1.21.0-cp38-cp38-win_amd64.whl", hash = "sha256:d2910d0a075caed95de1a605df00ee03b599de5419d0b95d55342e9a33ad1fb3"},
- {file = "numpy-1.21.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:a290989cd671cd0605e9c91a70e6df660f73ae87484218e8285c6522d29f6e38"},
- {file = "numpy-1.21.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3537b967b350ad17633b35c2f4b1a1bbd258c018910b518c30b48c8e41272717"},
- {file = "numpy-1.21.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ccc6c650f8700ce1e3a77668bb7c43e45c20ac06ae00d22bdf6760b38958c883"},
- {file = "numpy-1.21.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:709884863def34d72b183d074d8ba5cfe042bc3ff8898f1ffad0209161caaa99"},
- {file = "numpy-1.21.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:bebab3eaf0641bba26039fb0b2c5bf9b99407924b53b1ea86e03c32c64ef5aef"},
- {file = "numpy-1.21.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf680682ad0a3bef56dae200dbcbac2d57294a73e5b0f9864955e7dd7c2c2491"},
- {file = "numpy-1.21.0-cp39-cp39-win32.whl", hash = "sha256:d95d16204cd51ff1a1c8d5f9958ce90ae190be81d348b514f9be39f878b8044a"},
- {file = "numpy-1.21.0-cp39-cp39-win_amd64.whl", hash = "sha256:2ba579dde0563f47021dcd652253103d6fd66165b18011dce1a0609215b2791e"},
- {file = "numpy-1.21.0-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3c40e6b860220ed862e8097b8f81c9af6d7405b723f4a7af24a267b46f90e461"},
- {file = "numpy-1.21.0.zip", hash = "sha256:e80fe25cba41c124d04c662f33f6364909b985f2eb5998aaa5ae4b9587242cce"},
+ {file = "numpy-1.21.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:38e8648f9449a549a7dfe8d8755a5979b45b3538520d1e735637ef28e8c2dc50"},
+ {file = "numpy-1.21.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:fd7d7409fa643a91d0a05c7554dd68aa9c9bb16e186f6ccfe40d6e003156e33a"},
+ {file = "numpy-1.21.1-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a75b4498b1e93d8b700282dc8e655b8bd559c0904b3910b144646dbbbc03e062"},
+ {file = "numpy-1.21.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1412aa0aec3e00bc23fbb8664d76552b4efde98fb71f60737c83efbac24112f1"},
+ {file = "numpy-1.21.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e46ceaff65609b5399163de5893d8f2a82d3c77d5e56d976c8b5fb01faa6b671"},
+ {file = "numpy-1.21.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:c6a2324085dd52f96498419ba95b5777e40b6bcbc20088fddb9e8cbb58885e8e"},
+ {file = "numpy-1.21.1-cp37-cp37m-win32.whl", hash = "sha256:73101b2a1fef16602696d133db402a7e7586654682244344b8329cdcbbb82172"},
+ {file = "numpy-1.21.1-cp37-cp37m-win_amd64.whl", hash = "sha256:7a708a79c9a9d26904d1cca8d383bf869edf6f8e7650d85dbc77b041e8c5a0f8"},
+ {file = "numpy-1.21.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:95b995d0c413f5d0428b3f880e8fe1660ff9396dcd1f9eedbc311f37b5652e16"},
+ {file = "numpy-1.21.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:635e6bd31c9fb3d475c8f44a089569070d10a9ef18ed13738b03049280281267"},
+ {file = "numpy-1.21.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4a3d5fb89bfe21be2ef47c0614b9c9c707b7362386c9a3ff1feae63e0267ccb6"},
+ {file = "numpy-1.21.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:8a326af80e86d0e9ce92bcc1e65c8ff88297de4fa14ee936cb2293d414c9ec63"},
+ {file = "numpy-1.21.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:791492091744b0fe390a6ce85cc1bf5149968ac7d5f0477288f78c89b385d9af"},
+ {file = "numpy-1.21.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0318c465786c1f63ac05d7c4dbcecd4d2d7e13f0959b01b534ea1e92202235c5"},
+ {file = "numpy-1.21.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9a513bd9c1551894ee3d31369f9b07460ef223694098cf27d399513415855b68"},
+ {file = "numpy-1.21.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:91c6f5fc58df1e0a3cc0c3a717bb3308ff850abdaa6d2d802573ee2b11f674a8"},
+ {file = "numpy-1.21.1-cp38-cp38-win32.whl", hash = "sha256:978010b68e17150db8765355d1ccdd450f9fc916824e8c4e35ee620590e234cd"},
+ {file = "numpy-1.21.1-cp38-cp38-win_amd64.whl", hash = "sha256:9749a40a5b22333467f02fe11edc98f022133ee1bfa8ab99bda5e5437b831214"},
+ {file = "numpy-1.21.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:d7a4aeac3b94af92a9373d6e77b37691b86411f9745190d2c351f410ab3a791f"},
+ {file = "numpy-1.21.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d9e7912a56108aba9b31df688a4c4f5cb0d9d3787386b87d504762b6754fbb1b"},
+ {file = "numpy-1.21.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:25b40b98ebdd272bc3020935427a4530b7d60dfbe1ab9381a39147834e985eac"},
+ {file = "numpy-1.21.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:8a92c5aea763d14ba9d6475803fc7904bda7decc2a0a68153f587ad82941fec1"},
+ {file = "numpy-1.21.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:05a0f648eb28bae4bcb204e6fd14603de2908de982e761a2fc78efe0f19e96e1"},
+ {file = "numpy-1.21.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f01f28075a92eede918b965e86e8f0ba7b7797a95aa8d35e1cc8821f5fc3ad6a"},
+ {file = "numpy-1.21.1-cp39-cp39-win32.whl", hash = "sha256:88c0b89ad1cc24a5efbb99ff9ab5db0f9a86e9cc50240177a571fbe9c2860ac2"},
+ {file = "numpy-1.21.1-cp39-cp39-win_amd64.whl", hash = "sha256:01721eefe70544d548425a07c80be8377096a54118070b8a62476866d5208e33"},
+ {file = "numpy-1.21.1-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:2d4d1de6e6fb3d28781c73fbde702ac97f03d79e4ffd6598b880b2d95d62ead4"},
+ {file = "numpy-1.21.1.zip", hash = "sha256:dff4af63638afcc57a3dfb9e4b26d434a7a602d225b42d746ea7fe2edf1342fd"},
]
packaging = [
{file = "packaging-21.0-py3-none-any.whl", hash = "sha256:c86254f9220d55e31cc94d69bade760f0847da8000def4dfe1c6b872fd14ff14"},
@@ -1588,8 +1731,8 @@ parso = [
{file = "parso-0.8.2.tar.gz", hash = "sha256:12b83492c6239ce32ff5eed6d3639d6a536170723c6f3f1506869f1ace413398"},
]
pathspec = [
- {file = "pathspec-0.8.1-py2.py3-none-any.whl", hash = "sha256:aa0cb481c4041bf52ffa7b0d8fa6cd3e88a2ca4879c533c9153882ee2556790d"},
- {file = "pathspec-0.8.1.tar.gz", hash = "sha256:86379d6b86d75816baba717e64b1a3a3469deb93bb76d613c9ce79edc5cb68fd"},
+ {file = "pathspec-0.9.0-py2.py3-none-any.whl", hash = "sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a"},
+ {file = "pathspec-0.9.0.tar.gz", hash = "sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1"},
]
pexpect = [
{file = "pexpect-4.8.0-py2.py3-none-any.whl", hash = "sha256:0b48a55dcb3c05f3329815901ea4fc1537514d6ba867a152b581d69ae3710937"},
@@ -1627,6 +1770,27 @@ pyparsing = [
{file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"},
{file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"},
]
+pyproj = [
+ {file = "pyproj-3.1.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8eda240225971b5cd0bac2d399ed6222068f0598ee92d5f6e847bd2019d2c8b0"},
+ {file = "pyproj-3.1.0-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:ae237492767e0225f99b53a0fd7110fde2b7e7cabc105bbc243c151a7497de88"},
+ {file = "pyproj-3.1.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:b635e7e21fea5af74e90fc9e54d1a4c27078efdce6f214101c98dd93afae599a"},
+ {file = "pyproj-3.1.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa87df0982aa0f4477478899d9c930cc0f97cd6d8a4ce84c43ac88ccf86d1da7"},
+ {file = "pyproj-3.1.0-cp37-cp37m-win32.whl", hash = "sha256:10dad599b9f7ce2194996dc25f1000e0aa15754ecef9db46b624713959c67957"},
+ {file = "pyproj-3.1.0-cp37-cp37m-win_amd64.whl", hash = "sha256:a162ed199cd2ec392cffe20b2fa3381b68e7a166d55f3f060eceb8d517e4f46d"},
+ {file = "pyproj-3.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1e88ebc4e08e661e9011b5c1ebfb32f0d311963a9824a6effb4168c7e07918b1"},
+ {file = "pyproj-3.1.0-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:da88abc5e2f6a8fb07533855a57ca2a31845f58901a87f821b68b0db6b023978"},
+ {file = "pyproj-3.1.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:911d773da9fa4d4f3f7580173858c391e3ee0b61acaf0be303baab323d2eae78"},
+ {file = "pyproj-3.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f8a8d982bde211e65dc2de1f8f36cf162f9cc7fcd8a7625046ea265284e5e65"},
+ {file = "pyproj-3.1.0-cp38-cp38-win32.whl", hash = "sha256:c4193e1069d165476b2d0f7d882b7712b3eab6e2e6fe2a0a78ef40de825a1f28"},
+ {file = "pyproj-3.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:b6c74bbec679199746a3e02c0e0fad093c3652df96dd63e086a2fbf2afe9dc0e"},
+ {file = "pyproj-3.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:04c185102e659439c5bd428ac5473d36ef795fca8e225bbbe78e20643d804ec0"},
+ {file = "pyproj-3.1.0-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:ebbba7707fe83a01e54bce8e3e7342feb0b3e0d74ff8c28df12f8bc59b76827c"},
+ {file = "pyproj-3.1.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9cc464a1c51baad28ffb7a233116e8d4ce4c560b32039fa986d0f992ac3c431f"},
+ {file = "pyproj-3.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f3ad09cf3352bf5664794042b28d98781362ec8d9774ad73f28a1a0101a27f1"},
+ {file = "pyproj-3.1.0-cp39-cp39-win32.whl", hash = "sha256:ae5534fa7a3b74f20534694d297fce6f7483890ff6ca404394ecf372f3c589d4"},
+ {file = "pyproj-3.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:808f5992320e9631b2e45444028a65cd6ba3ee40229292934178ef07020a5ffd"},
+ {file = "pyproj-3.1.0.tar.gz", hash = "sha256:67b94f4e694ae33fc90dfb7da0e6b5ed5f671dd0acc2f6cf46e9c39d56e16e1a"},
+]
pyrsistent = [
{file = "pyrsistent-0.18.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f4c8cabb46ff8e5d61f56a037974228e978f26bfefce4f61a4b1ac0ba7a2ab72"},
{file = "pyrsistent-0.18.0-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:da6e5e818d18459fa46fac0a4a4e543507fe1110e808101277c5a2b5bab0cd2d"},
@@ -1651,8 +1815,8 @@ pyrsistent = [
{file = "pyrsistent-0.18.0.tar.gz", hash = "sha256:773c781216f8c2900b42a7b638d5b517bb134ae1acbebe4d1e8f1f41ea60eb4b"},
]
python-dateutil = [
- {file = "python-dateutil-2.8.1.tar.gz", hash = "sha256:73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c"},
- {file = "python_dateutil-2.8.1-py2.py3-none-any.whl", hash = "sha256:75bb3f31ea686f1197762692a9ee6a7550b59fc6ca3a1f4b5d7e32fb98e2da2a"},
+ {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"},
+ {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"},
]
pytz = [
{file = "pytz-2021.1-py2.py3-none-any.whl", hash = "sha256:eb10ce3e7736052ed3623d49975ce333bcd712c7bb19a58b9e2089d4057d0798"},
@@ -1794,13 +1958,38 @@ regex = [
{file = "regex-2021.7.6.tar.gz", hash = "sha256:8394e266005f2d8c6f0bc6780001f7afa3ef81a7a2111fa35058ded6fce79e4d"},
]
requests = [
- {file = "requests-2.25.1-py2.py3-none-any.whl", hash = "sha256:c210084e36a42ae6b9219e00e48287def368a26d03a048ddad7bfee44f75871e"},
- {file = "requests-2.25.1.tar.gz", hash = "sha256:27973dd4a904a4f13b263a19c866c13b92a39ed1c964655f025f3f8d3d75b804"},
+ {file = "requests-2.26.0-py2.py3-none-any.whl", hash = "sha256:6c1246513ecd5ecd4528a0906f910e8f0f9c6b8ec72030dc9fd154dc1a6efd24"},
+ {file = "requests-2.26.0.tar.gz", hash = "sha256:b8aa58f8cf793ffd8782d3d8cb19e66ef36f7aba4353eec859e74678b01b07a7"},
]
send2trash = [
{file = "Send2Trash-1.7.1-py3-none-any.whl", hash = "sha256:c20fee8c09378231b3907df9c215ec9766a84ee20053d99fbad854fe8bd42159"},
{file = "Send2Trash-1.7.1.tar.gz", hash = "sha256:17730aa0a33ab82ed6ca76be3bb25f0433d0014f1ccf63c979bab13a5b9db2b2"},
]
+shapely = [
+ {file = "Shapely-1.7.1-1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:46da0ea527da9cf9503e66c18bab6981c5556859e518fe71578b47126e54ca93"},
+ {file = "Shapely-1.7.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:4c10f317e379cc404f8fc510cd9982d5d3e7ba13a9cfd39aa251d894c6366798"},
+ {file = "Shapely-1.7.1-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:17df66e87d0fe0193910aeaa938c99f0b04f67b430edb8adae01e7be557b141b"},
+ {file = "Shapely-1.7.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:da38ed3d65b8091447dc3717e5218cc336d20303b77b0634b261bc5c1aa2bae8"},
+ {file = "Shapely-1.7.1-cp35-cp35m-win32.whl", hash = "sha256:8e7659dd994792a0aad8fb80439f59055a21163e236faf2f9823beb63a380e19"},
+ {file = "Shapely-1.7.1-cp35-cp35m-win_amd64.whl", hash = "sha256:791477edb422692e7dc351c5ed6530eb0e949a31b45569946619a0d9cd5f53cb"},
+ {file = "Shapely-1.7.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e3afccf0437edc108eef1e2bb9cc4c7073e7705924eb4cd0bf7715cd1ef0ce1b"},
+ {file = "Shapely-1.7.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:8f15b6ce67dcc05b61f19c689b60f3fe58550ba994290ff8332f711f5aaa9840"},
+ {file = "Shapely-1.7.1-cp36-cp36m-win32.whl", hash = "sha256:60e5b2282619249dbe8dc5266d781cc7d7fb1b27fa49f8241f2167672ad26719"},
+ {file = "Shapely-1.7.1-cp36-cp36m-win_amd64.whl", hash = "sha256:de618e67b64a51a0768d26a9963ecd7d338a2cf6e9e7582d2385f88ad005b3d1"},
+ {file = "Shapely-1.7.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:182716ffb500d114b5d1b75d7fd9d14b7d3414cef3c38c0490534cc9ce20981a"},
+ {file = "Shapely-1.7.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:4f3c59f6dbf86a9fc293546de492f5e07344e045f9333f3a753f2dda903c45d1"},
+ {file = "Shapely-1.7.1-cp37-cp37m-win32.whl", hash = "sha256:6871acba8fbe744efa4f9f34e726d070bfbf9bffb356a8f6d64557846324232b"},
+ {file = "Shapely-1.7.1-cp37-cp37m-win_amd64.whl", hash = "sha256:35be1c5d869966569d3dfd4ec31832d7c780e9df760e1fe52131105685941891"},
+ {file = "Shapely-1.7.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:052eb5b9ba756808a7825e8a8020fb146ec489dd5c919e7d139014775411e688"},
+ {file = "Shapely-1.7.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:90a3e2ae0d6d7d50ff2370ba168fbd416a53e7d8448410758c5d6a5920646c1d"},
+ {file = "Shapely-1.7.1-cp38-cp38-win32.whl", hash = "sha256:a3774516c8a83abfd1ddffb8b6ec1b0935d7fe6ea0ff5c31a18bfdae567b4eba"},
+ {file = "Shapely-1.7.1-cp38-cp38-win_amd64.whl", hash = "sha256:6593026cd3f5daaea12bcc51ae5c979318070fefee210e7990cb8ac2364e79a1"},
+ {file = "Shapely-1.7.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:617bf046a6861d7c6b44d2d9cb9e2311548638e684c2cd071d8945f24a926263"},
+ {file = "Shapely-1.7.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:b40cc7bb089ae4aa9ddba1db900b4cd1bce3925d2a4b5837b639e49de054784f"},
+ {file = "Shapely-1.7.1-cp39-cp39-win32.whl", hash = "sha256:2df5260d0f2983309776cb41bfa85c464ec07018d88c0ecfca23d40bfadae2f1"},
+ {file = "Shapely-1.7.1-cp39-cp39-win_amd64.whl", hash = "sha256:a5c3a50d823c192f32615a2a6920e8c046b09e07a58eba220407335a9cd2e8ea"},
+ {file = "Shapely-1.7.1.tar.gz", hash = "sha256:1641724c1055459a7e2b8bbe47ba25bdc89554582e62aec23cb3f3ca25f9b129"},
+]
six = [
{file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
{file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
@@ -1817,6 +2006,10 @@ toml = [
{file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"},
{file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"},
]
+tomli = [
+ {file = "tomli-1.0.4-py3-none-any.whl", hash = "sha256:0713b16ff91df8638a6a694e295c8159ab35ba93e3424a626dd5226d386057be"},
+ {file = "tomli-1.0.4.tar.gz", hash = "sha256:be670d0d8d7570fd0ea0113bd7bb1ba3ac6706b4de062cc4c952769355c9c268"},
+]
tornado = [
{file = "tornado-6.1-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:d371e811d6b156d82aa5f9a4e08b58debf97c302a35714f6f45e35139c332e32"},
{file = "tornado-6.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:0d321a39c36e5f2c4ff12b4ed58d41390460f798422c4504e09eb5678e09998c"},
diff --git a/data/data-pipeline/pyproject.toml b/data/data-pipeline/pyproject.toml
index 63a3cf53..df376907 100644
--- a/data/data-pipeline/pyproject.toml
+++ b/data/data-pipeline/pyproject.toml
@@ -1,26 +1,27 @@
[tool.poetry]
+authors = ["Your Name "]
+description = "ETL and Generation of Justice 40 Score"
name = "score"
version = "0.1.0"
-description = "ETL and Generation of Justice 40 Score"
-authors = ["Your Name "]
[tool.poetry.dependencies]
-python = "^3.7.1"
CensusData = "^1.13"
click = "^8.0.1"
dynaconf = "^3.1.4"
+geopandas = "^0.9.0"
ipython = "^7.24.1"
jupyter = "^1.0.0"
jupyter-contrib-nbextensions = "^0.5.1"
numpy = "^1.21.0"
pandas = "^1.2.5"
+python = "^3.7.1"
requests = "^2.25.1"
types-requests = "^2.25.0"
[tool.poetry.dev-dependencies]
-mypy = "^0.910"
black = {version = "^21.6b0", allow-prereleases = true}
+mypy = "^0.910"
[build-system]
-requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
+requires = ["poetry-core>=1.0.0"]