From 9635ef5ee2410c7ce81048e688187a0174538616 Mon Sep 17 00:00:00 2001 From: Matt Bowen <83967628+mattbowen-usds@users.noreply.github.com> Date: Wed, 10 Aug 2022 16:02:59 -0400 Subject: [PATCH] Refactor DOE Energy Burden and COI to use YAML (#1796) * added tribalId for Supplemental dataset (#1804) * Setting zoom levels for tribal map (#1810) * NRI dataset and initial score YAML configuration (#1534) * update be staging gha * NRI dataset and initial score YAML configuration * checkpoint * adding data checks for release branch * passing tests * adding INPUT_EXTRACTED_FILE_NAME to base class * lint * columns to keep and tests * update be staging gha * checkpoint * update be staging gha * NRI dataset and initial score YAML configuration * checkpoint * adding data checks for release branch * passing tests * adding INPUT_EXTRACTED_FILE_NAME to base class * lint * columns to keep and tests * checkpoint * PR Review * renoving source url * tests * stop execution of ETL if there's a YAML schema issue * update be staging gha * adding source url as class var again * clean up * force cache bust * gha cache bust * dynamically set score vars from YAML * docsctrings * removing last updated year - optional reverse percentile * passing tests * sort order * column ordening * PR review * class level vars * Updating DatasetsConfig * fix pylint errors * moving metadata hint back to code Co-authored-by: lucasmbrown-usds * Correct copy typo (#1809) * Add basic test suite for COI (#1518) * Update COI to use new yaml (#1518) * Add tests for DOE energy budren (1518 * Add dataset config for energy budren (1518) * Refactor ETL to use datasets.yml (#1518) * Add fake GEOIDs to COI tests (#1518) * Refactor _setup_etl_instance_and_run_extract to base (#1518) For the three classes we've done so far, a generic _setup_etl_instance_and_run_extract will work fine, for the moment we can reuse the same setup method until we decide future classes need more flexibility --- but they can also always subclass so... * Add output-path tests (#1518) * Update YAML to match constant (#1518) * Don't blindly set float format (#1518) * Add defaults for extract (#1518) * Run YAML load on all subclasses (#1518) * Update description fields (#1518) * Update YAML per final format (#1518) * Update fixture tract IDs (#1518) * Update base class refactor (#1518) Now that NRI is final I needed to make a small number of updates to my refactored code. * Remove old comment (#1518) * Fix type signature and return (#1518) * Update per code review (#1518) Co-authored-by: Jorge Escobar <83969469+esfoobar-usds@users.noreply.github.com> Co-authored-by: lucasmbrown-usds Co-authored-by: Vim <86254807+vim-usds@users.noreply.github.com> --- .github/workflows/data-checks.yml | 6 +- .github/workflows/deploy_be_staging.yml | 2 +- .../__snapshots__/areaDetail.test.tsx.snap | 2 +- client/src/data/copy/explore.tsx | 2 +- client/src/intl/en.json | 2 +- client/src/intl/es.json | 2 +- data/data-pipeline/data_pipeline/etl/base.py | 99 +- .../etl/score/config/__init__.py | 0 .../etl/score/config/datasets.yml | 131 + .../data_pipeline/etl/score/etl_score.py | 1 + .../etl/score/schemas/__init__.py | 0 .../etl/score/schemas/datasets.py | 83 + .../sources/child_opportunity_index/etl.py | 72 +- .../etl/sources/doe_energy_burden/etl.py | 56 +- .../etl/sources/national_risk_index/etl.py | 52 +- .../data_pipeline/etl/sources/tribal/etl.py | 4 +- .../child_opportunity_index/__init__.py | 0 .../child_opportunity_index/data/coi.zip | Bin 0 -> 5858 bytes .../child_opportunity_index/data/extract.csv | 11 + .../child_opportunity_index/data/output.csv | 16 + .../child_opportunity_index/data/raw.csv | 28 + .../data/transform.csv | 16 + .../child_opportunity_index/test_etl.py | 69 + .../sources/doe_energy_burden/__init__.py | 0 .../data/DOE_LEAD_AMI_TRACT_2018_ALL.csv.zip | Bin 0 -> 382 bytes .../doe_energy_burden/data/extract.csv | 16 + .../sources/doe_energy_burden/data/output.csv | 16 + .../doe_energy_burden/data/transform.csv | 16 + .../sources/doe_energy_burden/test_etl.py | 61 + .../tests/sources/example/data/extract.csv | 6 +- .../tests/sources/example/data/input.zip | Bin 390 -> 366 bytes .../tests/sources/example/data/output.csv | 6 +- .../tests/sources/example/data/transform.csv | 6 +- .../tests/sources/example/test_etl.py | 63 +- .../data/NRI_Table_CensusTracts.zip | Bin 64366 -> 64404 bytes .../national_risk_index/data/extract.csv | 6 +- .../national_risk_index/data/output.csv | 6 +- .../national_risk_index/data/transform.csv | 6 +- .../sources/national_risk_index/test_etl.py | 38 +- .../data_pipeline/tile/generate.py | 6 + data/data-pipeline/data_pipeline/utils.py | 9 +- mlc_config.json | 1 + package-lock.json | 3415 ----------------- package.json | 7 - 44 files changed, 698 insertions(+), 3640 deletions(-) create mode 100644 data/data-pipeline/data_pipeline/etl/score/config/__init__.py create mode 100644 data/data-pipeline/data_pipeline/etl/score/config/datasets.yml create mode 100644 data/data-pipeline/data_pipeline/etl/score/schemas/__init__.py create mode 100644 data/data-pipeline/data_pipeline/etl/score/schemas/datasets.py create mode 100644 data/data-pipeline/data_pipeline/tests/sources/child_opportunity_index/__init__.py create mode 100644 data/data-pipeline/data_pipeline/tests/sources/child_opportunity_index/data/coi.zip create mode 100644 data/data-pipeline/data_pipeline/tests/sources/child_opportunity_index/data/extract.csv create mode 100644 data/data-pipeline/data_pipeline/tests/sources/child_opportunity_index/data/output.csv create mode 100644 data/data-pipeline/data_pipeline/tests/sources/child_opportunity_index/data/raw.csv create mode 100644 data/data-pipeline/data_pipeline/tests/sources/child_opportunity_index/data/transform.csv create mode 100644 data/data-pipeline/data_pipeline/tests/sources/child_opportunity_index/test_etl.py create mode 100644 data/data-pipeline/data_pipeline/tests/sources/doe_energy_burden/__init__.py create mode 100644 data/data-pipeline/data_pipeline/tests/sources/doe_energy_burden/data/DOE_LEAD_AMI_TRACT_2018_ALL.csv.zip create mode 100644 data/data-pipeline/data_pipeline/tests/sources/doe_energy_burden/data/extract.csv create mode 100644 data/data-pipeline/data_pipeline/tests/sources/doe_energy_burden/data/output.csv create mode 100644 data/data-pipeline/data_pipeline/tests/sources/doe_energy_burden/data/transform.csv create mode 100644 data/data-pipeline/data_pipeline/tests/sources/doe_energy_burden/test_etl.py delete mode 100644 package-lock.json delete mode 100644 package.json diff --git a/.github/workflows/data-checks.yml b/.github/workflows/data-checks.yml index 55a5ad302..41438384b 100644 --- a/.github/workflows/data-checks.yml +++ b/.github/workflows/data-checks.yml @@ -2,7 +2,9 @@ name: Data Checks on: pull_request: - branches: [main] # runs on any PR against main + branches: + - main + - "**/release/**" paths: - "data/**" jobs: @@ -16,7 +18,7 @@ jobs: # checks all of the versions allowed in pyproject.toml python-version: [3.8, 3.9] steps: - # installs python + # installs Python # one execution of the tests per version listed above - uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version }} diff --git a/.github/workflows/deploy_be_staging.yml b/.github/workflows/deploy_be_staging.yml index 8aeac8efc..19b6fff66 100644 --- a/.github/workflows/deploy_be_staging.yml +++ b/.github/workflows/deploy_be_staging.yml @@ -62,7 +62,7 @@ jobs: - name: Update PR with deployed Score URLs uses: mshick/add-pr-comment@v1 with: - # Deploy to S3 for the staging URL + # Deploy to S3 for the Staging URL message: | ** Score Deployed! ** Find it here: diff --git a/client/src/components/AreaDetail/tests/__snapshots__/areaDetail.test.tsx.snap b/client/src/components/AreaDetail/tests/__snapshots__/areaDetail.test.tsx.snap index 6d67a4e40..b74f18d1b 100644 --- a/client/src/components/AreaDetail/tests/__snapshots__/areaDetail.test.tsx.snap +++ b/client/src/components/AreaDetail/tests/__snapshots__/areaDetail.test.tsx.snap @@ -519,7 +519,7 @@ exports[`rendering of the AreaDetail checks if indicators for NATION is present
Expected building loss rate
- Economic loss rate to agricultural value resulting from natural hazards each year + Economic loss rate to building value resulting from natural hazards each year
diff --git a/client/src/data/copy/explore.tsx b/client/src/data/copy/explore.tsx index 00c6f52cb..8c5e34121 100644 --- a/client/src/data/copy/explore.tsx +++ b/client/src/data/copy/explore.tsx @@ -590,7 +590,7 @@ export const SIDE_PANEL_INDICATOR_DESCRIPTION = defineMessages({ }, EXP_BLD_LOSS: { id: 'explore.map.page.side.panel.indicator.description.exp.bld.loss', - defaultMessage: 'Economic loss rate to agricultural value resulting from natural hazards each year', + defaultMessage: 'Economic loss rate to building value resulting from natural hazards each year', description: `Navigate to the explore the map page. When the map is in view, click on the map. The side panel will show an indicator description of Economic loss rate to buildings resulting from natural hazards`, }, diff --git a/client/src/intl/en.json b/client/src/intl/en.json index ebe6156f2..5b4c8aacb 100644 --- a/client/src/intl/en.json +++ b/client/src/intl/en.json @@ -496,7 +496,7 @@ "description": "Navigate to the explore the map page. When the map is in view, click on the map. The side panel will show an indicator description of Economic loss rate to agriculture resulting from natural hazards\n " }, "explore.map.page.side.panel.indicator.description.exp.bld.loss": { - "defaultMessage": "Economic loss rate to agricultural value resulting from natural hazards each year", + "defaultMessage": "Economic loss rate to building value resulting from natural hazards each year", "description": "Navigate to the explore the map page. When the map is in view, click on the map. The side \n panel will show an indicator description of Economic loss rate to buildings resulting from natural hazards" }, "explore.map.page.side.panel.indicator.description.exp.pop.loss": { diff --git a/client/src/intl/es.json b/client/src/intl/es.json index 2d18c567e..0893ede2d 100644 --- a/client/src/intl/es.json +++ b/client/src/intl/es.json @@ -125,7 +125,7 @@ "explore.map.page.side.panel.indicator.description.dieselPartMatter": "Descarga de gas de motor diésel en el aire", "explore.map.page.side.panel.indicator.description.energyBurden": "Costo promedio anual de la energía dividido por el ingreso familiar", "explore.map.page.side.panel.indicator.description.exp.ag.loss": "Tasa de pérdida económica en relación con el valor agrícola resultante de peligros naturales cada año", - "explore.map.page.side.panel.indicator.description.exp.bld.loss": "Tasa de pérdida económica en relación con el valor agrícola resultante de peligros naturales cada año", + "explore.map.page.side.panel.indicator.description.exp.bld.loss": "Tasa de pérdida económica en relación con el valor construcción resultante de peligros naturales cada año", "explore.map.page.side.panel.indicator.description.exp.pop.loss": "Tasa de muertes y lesiones resultantes de peligros naturales cada año", "explore.map.page.side.panel.indicator.description.heartDisease": "Personas con 18 años cumplidos a quienes se les ha diagnosticado una cardiopatía", "explore.map.page.side.panel.indicator.description.high.ed": "Porcentaje de la población con 15 años cumplidos del grupo de bloques del censo que no está inscrita en la universidad, escuela superior o escuela de posgrado", diff --git a/data/data-pipeline/data_pipeline/etl/base.py b/data/data-pipeline/data_pipeline/etl/base.py index 6a89861a4..b6ef269b4 100644 --- a/data/data-pipeline/data_pipeline/etl/base.py +++ b/data/data-pipeline/data_pipeline/etl/base.py @@ -1,12 +1,15 @@ import enum import pathlib +import sys import typing from typing import Optional import pandas as pd from data_pipeline.config import settings +from data_pipeline.etl.score.schemas.datasets import DatasetsConfig from data_pipeline.utils import ( + load_yaml_dict_from_file, unzip_file_from_url, remove_all_from_dir, get_module_logger, @@ -30,6 +33,9 @@ class ExtractTransformLoad: Attributes: DATA_PATH (pathlib.Path): Local path where all data will be stored TMP_PATH (pathlib.Path): Local path where temporary data will be stored + + TODO: Fill missing attrs here + GEOID_FIELD_NAME (str): The common column name for a Census Block Group identifier GEOID_TRACT_FIELD_NAME (str): The common column name for a Census Tract identifier """ @@ -40,6 +46,8 @@ class ExtractTransformLoad: DATA_PATH: pathlib.Path = APP_ROOT / "data" TMP_PATH: pathlib.Path = DATA_PATH / "tmp" CONTENT_CONFIG: pathlib.Path = APP_ROOT / "content" / "config" + DATASET_CONFIG_PATH: pathlib.Path = APP_ROOT / "etl" / "score" / "config" + DATASET_CONFIG: Optional[dict] = None # Parameters GEOID_FIELD_NAME: str = "GEOID10" @@ -55,6 +63,9 @@ class ExtractTransformLoad: # SOURCE_URL is used to extract source data in extract(). SOURCE_URL: str = None + # INPUT_EXTRACTED_FILE_NAME is the name of the file after extract(). + INPUT_EXTRACTED_FILE_NAME: str = None + # GEO_LEVEL is used to identify whether output data is at the unit of the tract or # census block group. # TODO: add tests that enforce seeing the expected geographic identifier field @@ -64,6 +75,13 @@ class ExtractTransformLoad: # COLUMNS_TO_KEEP is used to identify which columns to keep in the output df. COLUMNS_TO_KEEP: typing.List[str] = None + # INPUT_GEOID_TRACT_FIELD_NAME is the field name that identifies the Census Tract ID + # on the input file + INPUT_GEOID_TRACT_FIELD_NAME: str = None + + # NULL_REPRESENTATION is how nulls are represented on the input field + NULL_REPRESENTATION: str = None + # Thirteen digits in a census block group ID. EXPECTED_CENSUS_BLOCK_GROUPS_CHARACTER_LENGTH: int = 13 # TODO: investigate. Census says there are only 217,740 CBGs in the US. This might @@ -77,8 +95,56 @@ class ExtractTransformLoad: # periods. https://github.com/usds/justice40-tool/issues/964 EXPECTED_MAX_CENSUS_TRACTS: int = 74160 + # We use output_df as the final dataframe to use to write to the CSV + # It is used on the "load" base class method output_df: pd.DataFrame = None + def __init_subclass__(cls) -> None: + cls.DATASET_CONFIG = cls.yaml_config_load() + + @classmethod + def yaml_config_load(cls) -> Optional[dict]: + """Generate config dictionary and set instance variables from YAML dataset.""" + if cls.NAME is not None: + # check if the class instance has score YAML definitions + datasets_config = load_yaml_dict_from_file( + cls.DATASET_CONFIG_PATH / "datasets.yml", + DatasetsConfig, + ) + + # get the config for this dataset + try: + dataset_config = next( + item + for item in datasets_config.get("datasets") + if item["module_name"] == cls.NAME + ) + except StopIteration: + # Note: it'd be nice to log the name of the dataframe, but that's not accessible in this scope. + logger.error( + f"Exception encountered while extracting dataset config for dataset {cls.NAME}" + ) + sys.exit() + + # set some of the basic fields + cls.INPUT_GEOID_TRACT_FIELD_NAME = dataset_config[ + "input_geoid_tract_field_name" + ] + + # get the columns to write on the CSV + # and set the constants + cls.COLUMNS_TO_KEEP = [ + cls.GEOID_TRACT_FIELD_NAME, # always index with geoid tract id + ] + for field in dataset_config["load_fields"]: + cls.COLUMNS_TO_KEEP.append(field["long_name"]) + setattr(cls, field["df_field_name"], field["long_name"]) + + # set the constants for the class + setattr(cls, field["df_field_name"], field["long_name"]) + return dataset_config + return None + # This is a classmethod so it can be used by `get_data_frame` without # needing to create an instance of the class. This is a use case in `etl_score`. @classmethod @@ -87,16 +153,10 @@ def _get_output_file_path(cls) -> pathlib.Path: if cls.NAME is None: raise NotImplementedError( f"Child ETL class needs to specify `cls.NAME` (currently " - f"{cls.NAME}) and `cls.LAST_UPDATED_YEAR` (currently " - f"{cls.LAST_UPDATED_YEAR})." + f"{cls.NAME})." ) - output_file_path = ( - cls.DATA_PATH - / "dataset" - / f"{cls.NAME}_{cls.LAST_UPDATED_YEAR}" - / "usa.csv" - ) + output_file_path = cls.DATA_PATH / "dataset" / f"{cls.NAME}" / "usa.csv" return output_file_path def get_tmp_path(self) -> pathlib.Path: @@ -120,14 +180,18 @@ def extract( to get the file from a source url, unzips it and stores it on an extract_path.""" - # this can be accessed via super().extract() - if source_url and extract_path: - unzip_file_from_url( - file_url=source_url, - download_path=self.get_tmp_path(), - unzipped_file_path=extract_path, - verify=verify, - ) + if source_url is None: + source_url = self.SOURCE_URL + + if extract_path is None: + extract_path = self.get_tmp_path() + + unzip_file_from_url( + file_url=source_url, + download_path=self.get_tmp_path(), + unzipped_file_path=extract_path, + verify=verify, + ) def transform(self) -> None: """Transform the data extracted into a format that can be consumed by the @@ -229,8 +293,7 @@ def load(self, float_format=None) -> None: Data is written in the specified local data folder or remote AWS S3 bucket. - Uses the directory from `self.OUTPUT_DIR` and the file name from - `self._get_output_file_path`. + Uses the directory and the file name from `self._get_output_file_path`. """ logger.info(f"Saving `{self.NAME}` CSV") diff --git a/data/data-pipeline/data_pipeline/etl/score/config/__init__.py b/data/data-pipeline/data_pipeline/etl/score/config/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/data/data-pipeline/data_pipeline/etl/score/config/datasets.yml b/data/data-pipeline/data_pipeline/etl/score/config/datasets.yml new file mode 100644 index 000000000..5316fadde --- /dev/null +++ b/data/data-pipeline/data_pipeline/etl/score/config/datasets.yml @@ -0,0 +1,131 @@ +--- +datasets: + - long_name: "FEMA National Risk Index" + short_name: "nri" + module_name: national_risk_index + input_geoid_tract_field_name: "TRACTFIPS" + load_fields: + - short_name: "ex_loss" + df_field_name: "RISK_INDEX_EXPECTED_ANNUAL_LOSS_SCORE_FIELD_NAME" + long_name: "FEMA Risk Index Expected Annual Loss Score" + field_type: float + number_of_decimals_in_output: 6 + + - short_name: "ex_pop_loss" + df_field_name: "EXPECTED_POPULATION_LOSS_RATE_FIELD_NAME" + long_name: "Expected population loss rate (Natural Hazards Risk Index)" + description_short: + "Rate of fatalities and injuries resulting from natural hazards each year" + description_long: + "Rate relative to the population of fatalities and injuries due to fourteen + types of natural hazards each year that have some link to climate change: + avalanche, coastal flooding, cold wave, drought, hail, heat wave, hurricane, + ice storm, landslide, riverine flooding, strong wind, tornado, wildfire, and + winter weather. Population loss is defined as the Spatial Hazard Events and + Losses and National Centers 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, 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 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." + field_type: float + number_of_decimals_in_output: 6 + include_in_tiles: true + include_in_downloadable_files: true + create_percentile: true + + - short_name: "ex_ag_loss" + df_field_name: "EXPECTED_AGRICULTURE_LOSS_RATE_FIELD_NAME" + long_name: "Expected agricultural loss rate (Natural Hazards Risk Index)" + description_short: + "Economic loss rate to agricultural value resulting from natural hazards each + year" + description_long: + "Percent of agricultural value at risk from losses due to fourteen types of + natural hazards that have some link to climate change: avalanche, coastal + flooding, cold wave, drought, hail, heat wave, hurricane, ice storm, + landslide, riverine flooding, strong wind, tornado, wildfire, and winter + weather. Rate calculated by dividing the agricultural value at risk in a + census tract by the total agricultural value in that census tract." + field_type: float + number_of_decimals_in_output: 6 + include_in_tiles: true + include_in_downloadable_files: true + create_percentile: true + + - short_name: "ex_bldg_loss" + df_field_name: "EXPECTED_BUILDING_LOSS_RATE_FIELD_NAME" + long_name: "Expected building loss rate (Natural Hazards Risk Index)" + description_short: + "Economic loss rate to building value resulting from natural hazards each year" + description_long: + "Percent of building value at risk from losses due to fourteen types of + natural hazards that have some link to climate change: avalanche, coastal + flooding, cold wave, drought, hail, heat wave, hurricane, ice storm, + landslide, riverine flooding, strong wind, tornado, wildfire, and winter + weather. Rate calculated by dividing the building value at risk in a census + tract by the total building value in that census tract." + field_type: float + number_of_decimals_in_output: 6 + include_in_tiles: true + include_in_downloadable_files: true + create_percentile: true + + - short_name: "has_ag_val" + df_field_name: "CONTAINS_AGRIVALUE" + long_name: "Contains agricultural value" + field_type: bool + - long_name: "Child Opportunity Index 2.0 database" + short_name: "coi" + module_name: "child_opportunity_index" + input_geoid_tract_field_name: "geoid" + load_fields: + - short_name: "he_heat" + df_field_name: "EXTREME_HEAT_FIELD" + long_name: "Summer days above 90F" + field_type: float + include_in_downloadable_files: true + include_in_tiles: true + - short_name: "he_food" + long_name: "Percent low access to healthy food" + df_field_name: "HEALTHY_FOOD_FIELD" + field_type: float + include_in_downloadable_files: true + include_in_tiles: true + - short_name: "he_green" + long_name: "Percent impenetrable surface areas" + df_field_name: "IMPENETRABLE_SURFACES_FIELD" + field_type: float + include_in_downloadable_files: true + include_in_tiles: true + - short_name: "ed_reading" + df_field_name: "READING_FIELD" + long_name: "Third grade reading proficiency" + field_type: float + include_in_downloadable_files: true + include_in_tiles: true + - long_name: "Low-Income Energy Affordabililty Data" + short_name: "LEAD" + module_name: "doe_energy_burden" + input_geoid_tract_field_name: "FIP" + load_fields: + - short_name: "EBP_PFS" + df_field_name: "REVISED_ENERGY_BURDEN_FIELD_NAME" + long_name: "Energy burden" + field_type: float + include_in_downloadable_files: true + include_in_tiles: true + - long_name: "Example ETL" + short_name: "Example" + module_name: "example_dataset" + input_geoid_tract_field_name: "GEOID10_TRACT" + load_fields: + - short_name: "EXAMPLE_FIELD" + df_field_name: "Input Field 1" + long_name: "Example Field 1" + field_type: float + include_in_tiles: true + include_in_downloadable_files: true + diff --git a/data/data-pipeline/data_pipeline/etl/score/etl_score.py b/data/data-pipeline/data_pipeline/etl/score/etl_score.py index 389c1af73..e85aff16b 100644 --- a/data/data-pipeline/data_pipeline/etl/score/etl_score.py +++ b/data/data-pipeline/data_pipeline/etl/score/etl_score.py @@ -442,6 +442,7 @@ def _prepare_initial_df(self) -> pd.DataFrame: # for instance, 3rd grade reading level : Low 3rd grade reading level. # This low field will not exist yet, it is only calculated for the # percentile. + # TODO: This will come from the YAML dataset config ReversePercentile( field_name=field_names.READING_FIELD, low_field_name=field_names.LOW_READING_FIELD, diff --git a/data/data-pipeline/data_pipeline/etl/score/schemas/__init__.py b/data/data-pipeline/data_pipeline/etl/score/schemas/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/data/data-pipeline/data_pipeline/etl/score/schemas/datasets.py b/data/data-pipeline/data_pipeline/etl/score/schemas/datasets.py new file mode 100644 index 000000000..0e80bc5b1 --- /dev/null +++ b/data/data-pipeline/data_pipeline/etl/score/schemas/datasets.py @@ -0,0 +1,83 @@ +from dataclasses import dataclass, field +from enum import Enum +from typing import List, Optional + + +class FieldType(Enum): + STRING = "string" + INT64 = "int64" + BOOL = "bool" + FLOAT = "float" + PERCENTAGE = "percentage" + + +@dataclass +class DatasetsConfig: + @dataclass + class Dataset: + """A class that defines a dataset and its load variables. + + Attributes: + long_name (str): A human readable title for the dataset. + short_name (str): used to compose the short variable names for tiles/arcgis. All short variable names will be prepended + with the short name of the data set it comes from, i.e. `nri__ex_loss`. + module_name (str): A string that matches both the Python module name for the dataset and the `NAME` property on the ETL class. + load_fields (LoadField): A list of type LoadField that will drive the score ETL and side effects (tiles, downloadables). + """ + + @dataclass + class LoadField: + """A class to define the fields to be saved on the dataset's output. + + These fields will be then imported by the score generation ETL. + + Attributes: + short_name (str): Used in conjunction with the dataset's `short_name` for files where short names are needed. + df_field_name (str): Name for the field in the etl class. + long_name (str): Column name for the dataset's output csv. + field_type (FieldType): An enum that dictates what type of field this is. + description_short (Optional str): Description used if the field appears in the side panel. + description_long (Optional str): Description used if the field appears in the Methodology page. + number_of_decimals_in_output (Optional int): Used to represent number of decimals in side effects, like Excel. Defaults to 2 decimals. + include_in_tiles (Optional bool): Include this field on the tile export. Defaults to False. + include_in_downloadable_files (Optional bool): Include this field on the CSV and Excel exports. Defaults to False. + create_percentile (Optional bool): Whether or not the backend processing should create a percentile field (ranked in ascending order) + from the values in this field. Defaults to False. + create_reverse_percentile (Optional bool): Whether or not the backend processing should create a "reverse percentile" field (ranked in + descending order) from the values in this field. Defaults to False. + include_in_comparison_tool_as_index (Optional bool): Whether or not to include this field in the comparison tool + as an index used as comparison (e.g., this field might be a state or national index that identifies priority communities). + The field itself must be a boolean for the comparison tool to work appropriately. Defaults to False. + include_in_comparison_tool_as_statistical_descriptor (Optional bool): Whether or not to include this field in the comparison tool as a + statistical descriptor of census tracts (e.g., this field might income levels, life expectancy, etc). This will be + used to generate reports that produce information such as, tracts identified by Index A but not Index B have higher + income levels but lower life expectancy. Defaults to False. + """ + + short_name: str + df_field_name: str + long_name: str + field_type: FieldType = field( + metadata={"by_value": True} + ) # This will be used on the `etl_score_post` for the + # data manipulation. The `by_value` metadata prop will load the field type's Enum value instead of the index, i.e. "string" + # and not STRING + description_short: Optional[str] = None + description_long: Optional[str] = None + number_of_decimals_in_output: Optional[int] = 2 + include_in_tiles: Optional[bool] = False + include_in_downloadable_files: Optional[bool] = False + create_percentile: Optional[bool] = False + create_reverse_percentile: Optional[bool] = False + include_in_comparison_tool_as_index: Optional[bool] = False + include_in_comparison_tool_as_statistical_descriptor: Optional[ + bool + ] = False + + long_name: str + short_name: str + module_name: str + input_geoid_tract_field_name: str + load_fields: List[LoadField] + + datasets: List[Dataset] diff --git a/data/data-pipeline/data_pipeline/etl/sources/child_opportunity_index/etl.py b/data/data-pipeline/data_pipeline/etl/sources/child_opportunity_index/etl.py index eb9de9db0..b3e40e3a5 100644 --- a/data/data-pipeline/data_pipeline/etl/sources/child_opportunity_index/etl.py +++ b/data/data-pipeline/data_pipeline/etl/sources/child_opportunity_index/etl.py @@ -1,9 +1,8 @@ from pathlib import Path import pandas as pd -from data_pipeline.etl.base import ExtractTransformLoad -from data_pipeline.score import field_names -from data_pipeline.utils import get_module_logger, unzip_file_from_url +from data_pipeline.etl.base import ExtractTransformLoad, ValidGeoLevel +from data_pipeline.utils import get_module_logger logger = get_module_logger(__name__) @@ -21,15 +20,27 @@ class ChildOpportunityIndex(ExtractTransformLoad): Full technical documents: https://www.diversitydatakids.org/sites/default/files/2020-02/ddk_coi2.0_technical_documentation_20200212.pdf. Github repo: https://github.com/diversitydatakids/COI/ - """ + # Metadata for the baseclass + NAME = "child_opportunity_index" + GEO_LEVEL = ValidGeoLevel.CENSUS_TRACT + + # Define these for easy code completion + EXTREME_HEAT_FIELD: str + HEALTHY_FOOD_FIELD: str + IMPENETRABLE_SURFACES_FIELD: str + READING_FIELD: str + def __init__(self): - self.COI_FILE_URL = ( + self.SOURCE_URL = ( "https://data.diversitydatakids.org/datastore/zip/f16fff12-b1e5-4f60-85d3-" "3a0ededa30a0?format=csv" ) + # TODO: Decide about nixing this + self.TRACT_INPUT_COLUMN_NAME = self.INPUT_GEOID_TRACT_FIELD_NAME + self.OUTPUT_PATH: Path = ( self.DATA_PATH / "dataset" / "child_opportunity_index" ) @@ -40,31 +51,19 @@ def __init__(self): self.IMPENETRABLE_SURFACES_INPUT_FIELD = "HE_GREEN" self.READING_INPUT_FIELD = "ED_READING" - # Constants for output - self.COLUMNS_TO_KEEP = [ - self.GEOID_TRACT_FIELD_NAME, - field_names.EXTREME_HEAT_FIELD, - field_names.HEALTHY_FOOD_FIELD, - field_names.IMPENETRABLE_SURFACES_FIELD, - field_names.READING_FIELD, - ] - - self.raw_df: pd.DataFrame self.output_df: pd.DataFrame def extract(self) -> None: logger.info("Starting 51MB data download.") - - unzip_file_from_url( - file_url=self.COI_FILE_URL, - download_path=self.get_tmp_path(), - unzipped_file_path=self.get_tmp_path() / "child_opportunity_index", + super().extract( + source_url=self.SOURCE_URL, + extract_path=self.get_tmp_path(), ) - self.raw_df = pd.read_csv( - filepath_or_buffer=self.get_tmp_path() - / "child_opportunity_index" - / "raw.csv", + def transform(self) -> None: + logger.info("Starting transforms.") + raw_df = pd.read_csv( + filepath_or_buffer=self.get_tmp_path() / "raw.csv", # The following need to remain as strings for all of their digits, not get # converted to numbers. dtype={ @@ -73,16 +72,13 @@ def extract(self) -> None: low_memory=False, ) - def transform(self) -> None: - logger.info("Starting transforms.") - - output_df = self.raw_df.rename( + output_df = raw_df.rename( columns={ self.TRACT_INPUT_COLUMN_NAME: self.GEOID_TRACT_FIELD_NAME, - self.EXTREME_HEAT_INPUT_FIELD: field_names.EXTREME_HEAT_FIELD, - self.HEALTHY_FOOD_INPUT_FIELD: field_names.HEALTHY_FOOD_FIELD, - self.IMPENETRABLE_SURFACES_INPUT_FIELD: field_names.IMPENETRABLE_SURFACES_FIELD, - self.READING_INPUT_FIELD: field_names.READING_FIELD, + self.EXTREME_HEAT_INPUT_FIELD: self.EXTREME_HEAT_FIELD, + self.HEALTHY_FOOD_INPUT_FIELD: self.HEALTHY_FOOD_FIELD, + self.IMPENETRABLE_SURFACES_INPUT_FIELD: self.IMPENETRABLE_SURFACES_FIELD, + self.READING_INPUT_FIELD: self.READING_FIELD, } ) @@ -95,8 +91,8 @@ def transform(self) -> None: # Convert percents from 0-100 to 0-1 to standardize with our other fields. percent_fields_to_convert = [ - field_names.HEALTHY_FOOD_FIELD, - field_names.IMPENETRABLE_SURFACES_FIELD, + self.HEALTHY_FOOD_FIELD, + self.IMPENETRABLE_SURFACES_FIELD, ] for percent_field_to_convert in percent_fields_to_convert: @@ -105,11 +101,3 @@ def transform(self) -> None: ) self.output_df = output_df - - def load(self) -> None: - logger.info("Saving CSV") - - self.OUTPUT_PATH.mkdir(parents=True, exist_ok=True) - self.output_df[self.COLUMNS_TO_KEEP].to_csv( - path_or_buf=self.OUTPUT_PATH / "usa.csv", index=False - ) diff --git a/data/data-pipeline/data_pipeline/etl/sources/doe_energy_burden/etl.py b/data/data-pipeline/data_pipeline/etl/sources/doe_energy_burden/etl.py index 80407d390..52e8d3f05 100644 --- a/data/data-pipeline/data_pipeline/etl/sources/doe_energy_burden/etl.py +++ b/data/data-pipeline/data_pipeline/etl/sources/doe_energy_burden/etl.py @@ -2,63 +2,48 @@ import pandas as pd from data_pipeline.config import settings -from data_pipeline.etl.base import ExtractTransformLoad -from data_pipeline.utils import get_module_logger, unzip_file_from_url +from data_pipeline.etl.base import ExtractTransformLoad, ValidGeoLevel +from data_pipeline.utils import get_module_logger logger = get_module_logger(__name__) class DOEEnergyBurden(ExtractTransformLoad): - def __init__(self): - self.DOE_FILE_URL = ( - settings.AWS_JUSTICE40_DATASOURCES_URL - + "/DOE_LEAD_AMI_TRACT_2018_ALL.csv.zip" - ) + NAME = "doe_energy_burden" + SOURCE_URL: str = ( + settings.AWS_JUSTICE40_DATASOURCES_URL + + "/DOE_LEAD_AMI_TRACT_2018_ALL.csv.zip" + ) + GEO_LEVEL = ValidGeoLevel.CENSUS_TRACT + REVISED_ENERGY_BURDEN_FIELD_NAME: str + + def __init__(self): self.OUTPUT_PATH: Path = ( self.DATA_PATH / "dataset" / "doe_energy_burden" ) - - self.TRACT_INPUT_COLUMN_NAME = "FIP" self.INPUT_ENERGY_BURDEN_FIELD_NAME = "BURDEN" - self.REVISED_ENERGY_BURDEN_FIELD_NAME = "Energy burden" - - # Constants for output - self.COLUMNS_TO_KEEP = [ - self.GEOID_TRACT_FIELD_NAME, - self.REVISED_ENERGY_BURDEN_FIELD_NAME, - ] self.raw_df: pd.DataFrame self.output_df: pd.DataFrame - def extract(self) -> None: - logger.info("Starting data download.") - - unzip_file_from_url( - file_url=self.DOE_FILE_URL, - download_path=self.get_tmp_path(), - unzipped_file_path=self.get_tmp_path() / "doe_energy_burden", - ) - - self.raw_df = pd.read_csv( + def transform(self) -> None: + logger.info("Starting DOE Energy Burden transforms.") + raw_df: pd.DataFrame = pd.read_csv( filepath_or_buffer=self.get_tmp_path() - / "doe_energy_burden" / "DOE_LEAD_AMI_TRACT_2018_ALL.csv", # The following need to remain as strings for all of their digits, not get converted to numbers. dtype={ - self.TRACT_INPUT_COLUMN_NAME: "string", + self.INPUT_GEOID_TRACT_FIELD_NAME: "string", }, low_memory=False, ) - def transform(self) -> None: - logger.info("Starting transforms.") - - output_df = self.raw_df.rename( + logger.info("Renaming columns and ensuring output format is correct") + output_df = raw_df.rename( columns={ self.INPUT_ENERGY_BURDEN_FIELD_NAME: self.REVISED_ENERGY_BURDEN_FIELD_NAME, - self.TRACT_INPUT_COLUMN_NAME: self.GEOID_TRACT_FIELD_NAME, + self.INPUT_GEOID_TRACT_FIELD_NAME: self.GEOID_TRACT_FIELD_NAME, } ) @@ -75,7 +60,4 @@ def transform(self) -> None: def load(self) -> None: logger.info("Saving DOE Energy Burden CSV") - self.OUTPUT_PATH.mkdir(parents=True, exist_ok=True) - self.output_df[self.COLUMNS_TO_KEEP].to_csv( - path_or_buf=self.OUTPUT_PATH / "usa.csv", index=False - ) + super().load() diff --git a/data/data-pipeline/data_pipeline/etl/sources/national_risk_index/etl.py b/data/data-pipeline/data_pipeline/etl/sources/national_risk_index/etl.py index cdf00af3a..0b7ff12eb 100644 --- a/data/data-pipeline/data_pipeline/etl/sources/national_risk_index/etl.py +++ b/data/data-pipeline/data_pipeline/etl/sources/national_risk_index/etl.py @@ -15,10 +15,16 @@ class NationalRiskIndexETL(ExtractTransformLoad): """ETL class for the FEMA National Risk Index dataset""" NAME = "national_risk_index" - LAST_UPDATED_YEAR = 2020 SOURCE_URL = "https://hazards.fema.gov/nri/Content/StaticDocuments/DataDownload//NRI_Table_CensusTracts/NRI_Table_CensusTracts.zip" GEO_LEVEL = ValidGeoLevel.CENSUS_TRACT + # Output score variables (values set on datasets.yml) for linting purposes + RISK_INDEX_EXPECTED_ANNUAL_LOSS_SCORE_FIELD_NAME: str + EXPECTED_BUILDING_LOSS_RATE_FIELD_NAME: str + EXPECTED_AGRICULTURE_LOSS_RATE_FIELD_NAME: str + EXPECTED_POPULATION_LOSS_RATE_FIELD_NAME: str + CONTAINS_AGRIVALUE: str + ## TEMPORARILY HERE ## To get this value up in time for launch, we've hard coded it. We would like ## to, in the future, have this pull the 10th percentile (or nth percentile) @@ -27,54 +33,31 @@ class NationalRiskIndexETL(ExtractTransformLoad): AGRIVALUE_LOWER_BOUND = 408000 def __init__(self): + # define the full path for the input CSV file self.INPUT_CSV = self.get_tmp_path() / "NRI_Table_CensusTracts.csv" + # this is the main dataframe + self.df: pd.DataFrame + + # Start dataset-specific vars here self.RISK_INDEX_EXPECTED_ANNUAL_LOSS_SCORE_INPUT_FIELD_NAME = ( "EAL_SCORE" ) - - self.RISK_INDEX_EXPECTED_ANNUAL_LOSS_SCORE_FIELD_NAME = ( - "FEMA Risk Index Expected Annual Loss Score" - ) - self.EXPECTED_ANNUAL_LOSS_BUILDING_VALUE_INPUT_FIELD_NAME = "EAL_VALB" - self.EXPECTED_ANNUAL_LOSS_AGRICULTURAL_VALUE_INPUT_FIELD_NAME = ( "EAL_VALA" ) self.EXPECTED_ANNUAL_LOSS_POPULATION_VALUE_INPUT_FIELD_NAME = "EAL_VALP" - self.AGRICULTURAL_VALUE_INPUT_FIELD_NAME = "AGRIVALUE" self.POPULATION_INPUT_FIELD_NAME = "POPULATION" self.BUILDING_VALUE_INPUT_FIELD_NAME = "BUILDVALUE" - self.EXPECTED_BUILDING_LOSS_RATE_FIELD_NAME = ( - "Expected building loss rate (Natural Hazards Risk Index)" - ) - self.EXPECTED_AGRICULTURE_LOSS_RATE_FIELD_NAME = ( - "Expected agricultural loss rate (Natural Hazards Risk Index)" - ) - self.EXPECTED_POPULATION_LOSS_RATE_FIELD_NAME = ( - "Expected population loss rate (Natural Hazards Risk Index)" - ) - self.CONTAINS_AGRIVALUE = "Contains agricultural value" - - self.COLUMNS_TO_KEEP = [ - self.GEOID_TRACT_FIELD_NAME, - self.RISK_INDEX_EXPECTED_ANNUAL_LOSS_SCORE_FIELD_NAME, - self.EXPECTED_POPULATION_LOSS_RATE_FIELD_NAME, - self.EXPECTED_AGRICULTURE_LOSS_RATE_FIELD_NAME, - self.EXPECTED_BUILDING_LOSS_RATE_FIELD_NAME, - self.CONTAINS_AGRIVALUE, - ] - - self.df: pd.DataFrame - def extract(self) -> None: """Unzips NRI dataset from the FEMA data source and writes the files to the temporary data folder for use in the transform() method """ logger.info("Downloading 405MB National Risk Index Data") + super().extract( source_url=self.SOURCE_URL, extract_path=self.get_tmp_path(), @@ -90,19 +73,18 @@ def transform(self) -> None: """ logger.info("Transforming National Risk Index Data") - NRI_TRACT_COL = "TRACTFIPS" # Census Tract Column in NRI data - # read in the unzipped csv from NRI data source then rename the # Census Tract column for merging df_nri: pd.DataFrame = pd.read_csv( self.INPUT_CSV, - dtype={NRI_TRACT_COL: "string"}, + dtype={self.INPUT_GEOID_TRACT_FIELD_NAME: "string"}, na_values=["None"], low_memory=False, ) + df_nri.rename( columns={ - NRI_TRACT_COL: self.GEOID_TRACT_FIELD_NAME, + self.INPUT_GEOID_TRACT_FIELD_NAME: self.GEOID_TRACT_FIELD_NAME, self.RISK_INDEX_EXPECTED_ANNUAL_LOSS_SCORE_INPUT_FIELD_NAME: self.RISK_INDEX_EXPECTED_ANNUAL_LOSS_SCORE_FIELD_NAME, }, inplace=True, @@ -170,6 +152,7 @@ def transform(self) -> None: ].clip( lower=self.AGRIVALUE_LOWER_BOUND ) + # This produces a boolean that is True in the case of non-zero agricultural value df_nri[self.CONTAINS_AGRIVALUE] = ( df_nri[self.AGRICULTURAL_VALUE_INPUT_FIELD_NAME] > 0 @@ -185,6 +168,7 @@ def transform(self) -> None: # Note: `round` is smart enough to only apply to float columns. df_nri = df_nri.round(10) + # Assign the final df to the class' output_df for the load method self.output_df = df_nri def load(self) -> None: diff --git a/data/data-pipeline/data_pipeline/etl/sources/tribal/etl.py b/data/data-pipeline/data_pipeline/etl/sources/tribal/etl.py index 7b1843163..852a956d0 100644 --- a/data/data-pipeline/data_pipeline/etl/sources/tribal/etl.py +++ b/data/data-pipeline/data_pipeline/etl/sources/tribal/etl.py @@ -81,13 +81,13 @@ def _transform_bia_aian_supplemental( bia_aian_supplemental_df = gpd.read_file(tribal_geojson_path) bia_aian_supplemental_df.drop( - ["OBJECTID", "GISAcres", "Source", "Shape_Length", "Shape_Area"], + ["GISAcres", "Source", "Shape_Length", "Shape_Area"], axis=1, inplace=True, ) bia_aian_supplemental_df.rename( - columns={"Land_Area_": "landAreaName"}, + columns={"OBJECTID": "tribalId", "Land_Area_": "landAreaName"}, inplace=True, ) diff --git a/data/data-pipeline/data_pipeline/tests/sources/child_opportunity_index/__init__.py b/data/data-pipeline/data_pipeline/tests/sources/child_opportunity_index/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/data/data-pipeline/data_pipeline/tests/sources/child_opportunity_index/data/coi.zip b/data/data-pipeline/data_pipeline/tests/sources/child_opportunity_index/data/coi.zip new file mode 100644 index 0000000000000000000000000000000000000000..a5289deb1e6f4f324c09c9887ccfcedb86fb5c2a GIT binary patch literal 5858 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 + --snapshot-update + """ + + _ETL_CLASS = ChildOpportunityIndex + + _SAMPLE_DATA_PATH = pathlib.Path(__file__).parents[0] / "data" + _SAMPLE_DATA_FILE_NAME = "raw.csv" + _SAMPLE_DATA_ZIP_FILE_NAME = "coi.zip" + _EXTRACT_TMP_FOLDER_NAME = "ChildOpportunityIndex" + _EXTRACT_CSV_FILE_NAME = "raw.csv" + + def setup_method(self, _method, filename=__file__): + """Invoke `setup_method` from Parent, but using the current file name. + + This code can be copied identically between all child classes. + """ + super().setup_method(_method=_method, filename=filename) + + def test_init(self, mock_etl, mock_paths): + """Tests that the ChildOpportunityIndexETL class was initialized + correctly. + """ + + etl = ChildOpportunityIndex() + data_path, _ = mock_paths + assert etl.DATA_PATH == data_path + assert etl.COLUMNS_TO_KEEP == [ + "GEOID10_TRACT", + "Summer days above 90F", + "Percent low access to healthy food", + "Percent impenetrable surface areas", + "Third grade reading proficiency", + ] + assert etl.GEOID_FIELD_NAME == "GEOID10" + assert etl.GEOID_TRACT_FIELD_NAME == "GEOID10_TRACT" + assert etl.TRACT_INPUT_COLUMN_NAME == "geoid" + assert etl.EXTREME_HEAT_INPUT_FIELD == "HE_HEAT" + assert etl.HEALTHY_FOOD_INPUT_FIELD == "HE_FOOD" + assert etl.IMPENETRABLE_SURFACES_INPUT_FIELD == "HE_GREEN" + assert etl.READING_INPUT_FIELD == "ED_READING" + + def test_get_output_file_path(self, mock_etl, mock_paths): + """Tests the right file name is returned.""" + etl = self._ETL_CLASS() + data_path, tmp_path = mock_paths + + output_file_path = etl._get_output_file_path() + expected_output_file_path = ( + data_path / "dataset" / "child_opportunity_index" / "usa.csv" + ) + assert output_file_path == expected_output_file_path diff --git a/data/data-pipeline/data_pipeline/tests/sources/doe_energy_burden/__init__.py b/data/data-pipeline/data_pipeline/tests/sources/doe_energy_burden/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/data/data-pipeline/data_pipeline/tests/sources/doe_energy_burden/data/DOE_LEAD_AMI_TRACT_2018_ALL.csv.zip b/data/data-pipeline/data_pipeline/tests/sources/doe_energy_burden/data/DOE_LEAD_AMI_TRACT_2018_ALL.csv.zip new file mode 100644 index 0000000000000000000000000000000000000000..32c1edae978e4dd44126f6390ed9a29ea36d9e97 GIT binary patch literal 382 zcmWIWW@Zs#U|`^2F!bjNRr{13vkJ)TW@KQHXOLlV@pp~)admWwcl7m)4+(N~4v9B1 zFtmtw^zqS4E-niV;bdU;-T67`@63lur4`%^j4Ush85qDs?1j60hZJ~NA5;t9e{y6? z>!;$KFMCwd0w34>cNe_Tc2HXHm!tn_gSrA={+`pXjm}o+9sc9@{bj`t)eS<1oX?p{ zl!OyjH0!YHIB#M04sy_$^I9PwS5@#7ug}7*Q!6qu9-N${9Bi!9^8diKl{`A754Q8L z_wpwBMt%>FxPMSi@57yg``GuCea+?VXWu=& zT#IABHpT~dGcw6B;|c@`U~n)n0K0p6@^AnlAmm + --snapshot-update + """ + + _ETL_CLASS = DOEEnergyBurden + + _SAMPLE_DATA_PATH = pathlib.Path(__file__).parents[0] / "data" + _SAMPLE_DATA_FILE_NAME = "DOE_LEAD_AMI_TRACT_2018_ALL.csv" + _SAMPLE_DATA_ZIP_FILE_NAME = "DOE_LEAD_AMI_TRACT_2018_ALL.csv.zip" + _EXTRACT_TMP_FOLDER_NAME = "DOEEnergyBurden" + _EXTRACT_CSV_FILE_NAME = "extract.csv" + + def setup_method(self, _method, filename=__file__): + """Invoke `setup_method` from Parent, but using the current file name. + + This code can be copied identically between all child classes. + """ + super().setup_method(_method=_method, filename=filename) + + def test_init(self, mock_etl, mock_paths): + """Tests that the ChildOpportunityIndexETL class was initialized + correctly. + """ + + etl = DOEEnergyBurden() + data_path, _ = mock_paths + assert etl.DATA_PATH == data_path + assert etl.COLUMNS_TO_KEEP == ["GEOID10_TRACT", "Energy burden"] + assert etl.GEOID_FIELD_NAME == "GEOID10" + assert etl.GEOID_TRACT_FIELD_NAME == "GEOID10_TRACT" + assert etl.INPUT_GEOID_TRACT_FIELD_NAME == "FIP" + assert etl.INPUT_ENERGY_BURDEN_FIELD_NAME == "BURDEN" + assert etl.REVISED_ENERGY_BURDEN_FIELD_NAME == "Energy burden" + + def test_get_output_file_path(self, mock_etl, mock_paths): + """Tests the right file name is returned.""" + etl = self._ETL_CLASS() + data_path, tmp_path = mock_paths + + output_file_path = etl._get_output_file_path() + expected_output_file_path = ( + data_path / "dataset" / "doe_energy_burden" / "usa.csv" + ) + assert output_file_path == expected_output_file_path diff --git a/data/data-pipeline/data_pipeline/tests/sources/example/data/extract.csv b/data/data-pipeline/data_pipeline/tests/sources/example/data/extract.csv index 8531b3b34..6a5bdf73c 100644 --- a/data/data-pipeline/data_pipeline/tests/sources/example/data/extract.csv +++ b/data/data-pipeline/data_pipeline/tests/sources/example/data/extract.csv @@ -1,7 +1,7 @@ GEOID10_TRACT,Input Field 1 -06007040300,2.0000000000 -06001020100,6.1000000000 -06007040500,-7.8000000000 +06027000800,2.0000000000 +06069000802,6.1000000000 +06061021322,-7.8000000000 15001021010,12.0000000000 15001021101,12.0552478300 15007040603,13.5141757800 diff --git a/data/data-pipeline/data_pipeline/tests/sources/example/data/input.zip b/data/data-pipeline/data_pipeline/tests/sources/example/data/input.zip index 17293f6cb181b5b6e4a948e43955e2e744c81f8f..d0a8235cb44cab35e2398416ae2b00ff6ec1d639 100644 GIT binary patch literal 366 zcmWIWW@Zs#U|`^2_~OGAS`^)(e+5V-*$ww63R(-Y20qkW>wog-t7E)J z1fCUrk@_t=CBx#U$cIarOV%wpb=KMJ!4)G%t|eMhF}7kS?lCsVUA${{!P6*@Y4N=^ z|6O?xEOuVS-F@hmR{l=?C?-YLoW??NoyATnSHiFSNu1gdT5_{EZuJ(24N1(&izDx@ zYIEQ5_5bs&j5mTyQV#0}cr!A|G2;pf31FZwFaSe^VM!y1g%mKXkbpr8lmKs5HjqL_ MAoK^)oFKgn0GR@Y>i_@% literal 390 zcmWIWW@Zs#-~dAAiH;!*P>{#Sz`)6%z>t|&P+FpwTwE3!!pp!OzV~Nh77%9uacKoN z10%~fpgN#-1_s{=yR(`Nd0M|a+*9O#AR&8lSB1{r7N5omd%dkiyk1_|SO4_BNcx6{ zbNsC))mH7BGv8tT_Sc6Wubs1hUwu8FzWn?7`Rs4XQ(XLdTULCSqHxan=quUlCVg?q z`r;>fi*K6p3U#!l#+XR?fv}g zYzh7sAJzwWvvYj4W&3dm=o^st1H2iTM3@mlgDeLM8W>p82x1W(PyyboY# 0 @@ -148,14 +164,10 @@ def test_get_output_file_path_base(self, mock_etl, mock_paths): etl = self._get_instance_of_etl_class() data_path, tmp_path = mock_paths + etl.__init__() actual_file_path = etl._get_output_file_path() - expected_file_path = ( - data_path - / "dataset" - / f"{etl.NAME}_{etl.LAST_UPDATED_YEAR}" - / "usa.csv" - ) + expected_file_path = data_path / "dataset" / etl.NAME / "usa.csv" logger.info(f"Expected: {expected_file_path}") @@ -255,6 +267,7 @@ def test_transform_sets_output_df_base(self, mock_etl, mock_paths): etl = self._setup_etl_instance_and_run_extract( mock_etl=mock_etl, mock_paths=mock_paths ) + etl.__init__() etl.transform() assert etl.output_df is not None @@ -272,6 +285,7 @@ def test_load_base(self, snapshot, mock_etl, mock_paths): """ # setup - input variables etl = self._get_instance_of_etl_class() + etl.__init__() # setup - mock transform step df_transform = pd.read_csv( @@ -370,9 +384,14 @@ def test_validate_base(self, mock_etl, mock_paths): etl_with_duplicate_geo_field.output_df = actual_output_df.copy( deep=True ) + etl_with_duplicate_geo_field.output_df.reset_index(inplace=True) etl_with_duplicate_geo_field.output_df.loc[ 0:1, ExtractTransformLoad.GEOID_TRACT_FIELD_NAME - ] = "06007040300" + ] = etl_with_duplicate_geo_field.output_df[ + ExtractTransformLoad.GEOID_TRACT_FIELD_NAME + ].iloc[ + 0 + ] with pytest.raises(ValueError) as error: etl_with_duplicate_geo_field.validate() assert str(error.value).startswith("Duplicate values:") @@ -443,7 +462,7 @@ def test_validate_base(self, mock_etl, mock_paths): # Remove another column to keep and make sure error occurs. etl_with_missing_column = copy.deepcopy(etl) - columns_to_keep = actual_output_df.columns[:-1] + columns_to_keep = etl.COLUMNS_TO_KEEP[:-1] etl_with_missing_column.output_df = actual_output_df[columns_to_keep] with pytest.raises(ValueError) as error: etl_with_missing_column.validate() diff --git a/data/data-pipeline/data_pipeline/tests/sources/national_risk_index/data/NRI_Table_CensusTracts.zip b/data/data-pipeline/data_pipeline/tests/sources/national_risk_index/data/NRI_Table_CensusTracts.zip index 0a2c612979e49641c163f3faad48fd01c4dced59..11d182d086a8c3098b89b4b6e4dc62cc43e06e75 100644 GIT binary patch delta 57193 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 delta 57154 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 diff --git a/data/data-pipeline/data_pipeline/tests/sources/national_risk_index/data/extract.csv b/data/data-pipeline/data_pipeline/tests/sources/national_risk_index/data/extract.csv index 5e2f79e66..ce92d4f4c 100644 --- a/data/data-pipeline/data_pipeline/tests/sources/national_risk_index/data/extract.csv +++ b/data/data-pipeline/data_pipeline/tests/sources/national_risk_index/data/extract.csv @@ -1,7 +1,7 @@ OID_,NRI_ID,STATE,STATEABBRV,STATEFIPS,COUNTY,COUNTYTYPE,COUNTYFIPS,STCOFIPS,TRACT,TRACTFIPS,POPULATION,BUILDVALUE,AGRIVALUE,AREA,RISK_SCORE,RISK_RATNG,RISK_NPCTL,RISK_SPCTL,EAL_SCORE,EAL_RATNG,EAL_NPCTL,EAL_SPCTL,EAL_VALT,EAL_VALB,EAL_VALP,EAL_VALPE,EAL_VALA,SOVI_SCORE,SOVI_RATNG,SOVI_NPCTL,SOVI_SPCTL,SOVI_VALUE,RESL_SCORE,RESL_RATNG,RESL_NPCTL,RESL_SPCTL,RESL_VALUE,AVLN_EVNTS,AVLN_AFREQ,AVLN_EXPB,AVLN_EXPP,AVLN_EXPPE,AVLN_EXPT,AVLN_HLRB,AVLN_HLRP,AVLN_HLRR,AVLN_EALB,AVLN_EALP,AVLN_EALPE,AVLN_EALT,AVLN_EALS,AVLN_EALR,AVLN_RISKS,AVLN_RISKR,CFLD_EVNTS,CFLD_AFREQ,CFLD_EXPB,CFLD_EXPP,CFLD_EXPPE,CFLD_EXPT,CFLD_HLRB,CFLD_HLRP,CFLD_HLRR,CFLD_EALB,CFLD_EALP,CFLD_EALPE,CFLD_EALT,CFLD_EALS,CFLD_EALR,CFLD_RISKS,CFLD_RISKR,CWAV_EVNTS,CWAV_AFREQ,CWAV_EXPB,CWAV_EXPP,CWAV_EXPPE,CWAV_EXPA,CWAV_EXPT,CWAV_HLRB,CWAV_HLRP,CWAV_HLRA,CWAV_HLRR,CWAV_EALB,CWAV_EALP,CWAV_EALPE,CWAV_EALA,CWAV_EALT,CWAV_EALS,CWAV_EALR,CWAV_RISKS,CWAV_RISKR,DRGT_EVNTS,DRGT_AFREQ,DRGT_EXPA,DRGT_EXPT,DRGT_HLRA,DRGT_HLRR,DRGT_EALA,DRGT_EALT,DRGT_EALS,DRGT_EALR,DRGT_RISKS,DRGT_RISKR,ERQK_EVNTS,ERQK_AFREQ,ERQK_EXPB,ERQK_EXPP,ERQK_EXPPE,ERQK_EXPT,ERQK_HLRB,ERQK_HLRP,ERQK_HLRR,ERQK_EALB,ERQK_EALP,ERQK_EALPE,ERQK_EALT,ERQK_EALS,ERQK_EALR,ERQK_RISKS,ERQK_RISKR,HAIL_EVNTS,HAIL_AFREQ,HAIL_EXPB,HAIL_EXPP,HAIL_EXPPE,HAIL_EXPA,HAIL_EXPT,HAIL_HLRB,HAIL_HLRP,HAIL_HLRA,HAIL_HLRR,HAIL_EALB,HAIL_EALP,HAIL_EALPE,HAIL_EALA,HAIL_EALT,HAIL_EALS,HAIL_EALR,HAIL_RISKS,HAIL_RISKR,HWAV_EVNTS,HWAV_AFREQ,HWAV_EXPB,HWAV_EXPP,HWAV_EXPPE,HWAV_EXPA,HWAV_EXPT,HWAV_HLRB,HWAV_HLRP,HWAV_HLRA,HWAV_HLRR,HWAV_EALB,HWAV_EALP,HWAV_EALPE,HWAV_EALA,HWAV_EALT,HWAV_EALS,HWAV_EALR,HWAV_RISKS,HWAV_RISKR,HRCN_EVNTS,HRCN_AFREQ,HRCN_EXPB,HRCN_EXPP,HRCN_EXPPE,HRCN_EXPA,HRCN_EXPT,HRCN_HLRB,HRCN_HLRP,HRCN_HLRA,HRCN_HLRR,HRCN_EALB,HRCN_EALP,HRCN_EALPE,HRCN_EALA,HRCN_EALT,HRCN_EALS,HRCN_EALR,HRCN_RISKS,HRCN_RISKR,ISTM_EVNTS,ISTM_AFREQ,ISTM_EXPB,ISTM_EXPP,ISTM_EXPPE,ISTM_EXPT,ISTM_HLRB,ISTM_HLRP,ISTM_HLRR,ISTM_EALB,ISTM_EALP,ISTM_EALPE,ISTM_EALT,ISTM_EALS,ISTM_EALR,ISTM_RISKS,ISTM_RISKR,LNDS_EVNTS,LNDS_AFREQ,LNDS_EXPB,LNDS_EXPP,LNDS_EXPPE,LNDS_EXPT,LNDS_HLRB,LNDS_HLRP,LNDS_HLRR,LNDS_EALB,LNDS_EALP,LNDS_EALPE,LNDS_EALT,LNDS_EALS,LNDS_EALR,LNDS_RISKS,LNDS_RISKR,LTNG_EVNTS,LTNG_AFREQ,LTNG_EXPB,LTNG_EXPP,LTNG_EXPPE,LTNG_EXPT,LTNG_HLRB,LTNG_HLRP,LTNG_HLRR,LTNG_EALB,LTNG_EALP,LTNG_EALPE,LTNG_EALT,LTNG_EALS,LTNG_EALR,LTNG_RISKS,LTNG_RISKR,RFLD_EVNTS,RFLD_AFREQ,RFLD_EXPB,RFLD_EXPP,RFLD_EXPPE,RFLD_EXPA,RFLD_EXPT,RFLD_HLRB,RFLD_HLRP,RFLD_HLRA,RFLD_HLRR,RFLD_EALB,RFLD_EALP,RFLD_EALPE,RFLD_EALA,RFLD_EALT,RFLD_EALS,RFLD_EALR,RFLD_RISKS,RFLD_RISKR,SWND_EVNTS,SWND_AFREQ,SWND_EXPB,SWND_EXPP,SWND_EXPPE,SWND_EXPA,SWND_EXPT,SWND_HLRB,SWND_HLRP,SWND_HLRA,SWND_HLRR,SWND_EALB,SWND_EALP,SWND_EALPE,SWND_EALA,SWND_EALT,SWND_EALS,SWND_EALR,SWND_RISKS,SWND_RISKR,TRND_EVNTS,TRND_AFREQ,TRND_EXPB,TRND_EXPP,TRND_EXPPE,TRND_EXPA,TRND_EXPT,TRND_HLRB,TRND_HLRP,TRND_HLRA,TRND_HLRR,TRND_EALB,TRND_EALP,TRND_EALPE,TRND_EALA,TRND_EALT,TRND_EALS,TRND_EALR,TRND_RISKS,TRND_RISKR,TSUN_EVNTS,TSUN_AFREQ,TSUN_EXPB,TSUN_EXPP,TSUN_EXPPE,TSUN_EXPT,TSUN_HLRB,TSUN_HLRP,TSUN_HLRR,TSUN_EALB,TSUN_EALP,TSUN_EALPE,TSUN_EALT,TSUN_EALS,TSUN_EALR,TSUN_RISKS,TSUN_RISKR,VLCN_EVNTS,VLCN_AFREQ,VLCN_EXPB,VLCN_EXPP,VLCN_EXPPE,VLCN_EXPT,VLCN_HLRB,VLCN_HLRP,VLCN_HLRR,VLCN_EALB,VLCN_EALP,VLCN_EALPE,VLCN_EALT,VLCN_EALS,VLCN_EALR,VLCN_RISKS,VLCN_RISKR,WFIR_EVNTS,WFIR_AFREQ,WFIR_EXPB,WFIR_EXPP,WFIR_EXPPE,WFIR_EXPA,WFIR_EXPT,WFIR_HLRB,WFIR_HLRP,WFIR_HLRA,WFIR_HLRR,WFIR_EALB,WFIR_EALP,WFIR_EALPE,WFIR_EALA,WFIR_EALT,WFIR_EALS,WFIR_EALR,WFIR_RISKS,WFIR_RISKR,WNTW_EVNTS,WNTW_AFREQ,WNTW_EXPB,WNTW_EXPP,WNTW_EXPPE,WNTW_EXPA,WNTW_EXPT,WNTW_HLRB,WNTW_HLRP,WNTW_HLRA,WNTW_HLRR,WNTW_EALB,WNTW_EALP,WNTW_EALPE,WNTW_EALA,WNTW_EALT,WNTW_EALS,WNTW_EALR,WNTW_RISKS,WNTW_RISKR,NRI_VER -1,T06001020100,Hawaii,HI,15,Kauai,County,7,15007,40300,6001020100,8385,992658000.0000000000,147860.5647200878,3.6108521589,18.0705830803,Relatively Low,63.0775787404,63.4969325153,18.6199401875,Relatively Low,59.6420077263,70.5521472393,324935.2155714268,98076.5248682368,0.0296790442,225560.7358958097,1297.9548073803,31.6808724993,Relatively Moderate,48.7278745931,51.8518518519,-0.1330000000,52.5091980000,Relatively Low,23.5125676106,100.0000000000,2.6254599000,,,,,,,,,Not Applicable,,,,,,Not Applicable,,Not Applicable,,0.0699710120,202742385.5800542533,1862.6855876887,14156410466.4337959290,14359152852.0138511658,0.0000357579,0.0000000020,Very Low,507.2650077305,0.0000002606,1.9802850905,509.2452928210,2.6321796000,Very Low,2.5538810410,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000021774,0.0000022062,0.0080465986,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0030589604,No Rating,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,0.0005345855,912658000.0000000000,8385.0000000000,63726000000.0000000000,64638658000.0000000000,0.0167507621,0.0001397988,Very Low,22512.2000000000,0.0001541200,1171.3120000000,23683.5120000000,11.8920653303,Relatively Low,13.0147002820,Relatively Low,0.0000000000,0.0000000000,912658000.0000000000,8385.0000000000,63726000000.0000000000,147860.5647200878,64638805860.5647201538,0.0000180224,0.0000000760,0.0002275779,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000016,0.0000001005,0.0000761839,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,2.0000000000,0.0343605913,912658000.0000000000,8385.0000000000,63726000000.0000000000,147860.5647200878,64638805860.5647201538,0.0000255348,0.0000003276,0.0002460797,Very Low,788.9305592758,0.0000968737,736.2401254130,1.3226671624,1526.4933518512,4.6757862953,Very Low,6.1662913066,Very Low,0.0000000000,0.0148900000,912658000.0000000000,8385.0000000000,63726000000.0000000000,64638658000.0000000000,0.0000058883,0.0000028944,Relatively Low,80.0189118426,0.0003613770,2746.4650635800,2826.4839754226,19.2773661946,Relatively Low,15.4429446232,Relatively Low,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,142.0000000000,5.9166666660,59632790.0585851222,418.9266599156,3183842615.3584799767,51591.3125103788,3243526996.7295761108,0.0001804370,0.0000114831,0.0042466231,Very Low,63663.1136805333,0.0284625391,216315.2971586954,1296.2757495066,281274.6865887354,29.5879096062,Relatively High,26.9708819409,Relatively High,1.0000000000,0.0312500000,912658000.0000000000,8385.0000000000,63726000000.0000000000,147860.5647200878,64638805860.5647201538,0.0000032387,0.0000018297,0.0000727233,Very Low,92.3692287258,0.0004794348,3643.7043933928,0.3360282071,3736.4096503256,14.9734902768,Relatively Low,16.6070545485,Relatively Low,0.0000000000,0.0000653310,912658000.0000000000,8385.0000000000,63726000000.0000000000,147860.5647200878,64638805860.5647201538,0.0089662390,0.0000059784,0.0021079463,Very Low,534.6107152638,0.0000032750,24.8896914625,0.0203625042,559.5207692305,5.8706925202,Very Low,6.7469108145,Very Low,7.0000000000,0.0319693090,198555247.5326173902,978.4678896234,7436355961.1380958557,7634911208.6707134247,0.0015593140,0.0000038734,Very Low,9898.0167648649,0.0001211641,920.8471781755,10818.8639430404,23.6580872265,Relatively High,20.2115884136,Relatively Moderate,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0005411070,0.0000037371,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,,,,,,,,,,Insufficient Data,,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000851,0.0000001057,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,November 2021 -2,T06007040300,Hawaii,HI,15,Hawaii,County,1,15001,20100,6007040300,5213,409283000.0000000000,30161527.9142542519,97.0642891247,26.0474557835,Relatively High,89.4815710967,87.4233128834,24.6571275391,Relatively Moderate,83.8106105391,87.4233128834,754552.3595077734,510222.1167381129,0.0320334258,243454.0359926557,876.2067770047,33.3455935266,Relatively Moderate,67.0519519602,65.5270655271,0.9080000000,50.7751980000,Relatively Low,9.3859370029,40.0000000000,2.5387599000,,,,,,,,,Not Applicable,,,,,,Not Applicable,,Not Applicable,,0.0579710120,1082842.5920536572,13.7920666932,104819706.8679994941,105902549.4600531608,0.0000313713,0.0000000025,Very Low,1.9692852387,0.0000000020,0.0151413322,1.9844265710,0.4142077200,Very Low,0.4374499910,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000021774,0.0000022062,0.0080465986,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000541,No Rating,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,0.0099874373,409283000.0000000000,5213.0000000000,39618800000.0000000000,40028083000.0000000000,0.0008505842,0.0000116917,Very Low,509627.8000000000,0.0314233600,238817.5360000000,748445.3360000000,37.5977579168,Very High,44.7882310288,Very High,1.0000000000,0.0312500000,409283000.0000000000,5213.0000000000,39618800000.0000000000,30161527.9142542407,40058244527.9142456055,0.0000180224,0.0000000760,0.0002275779,Very Low,230.5075462219,0.0000123856,94.1304164907,214.5030827638,539.1410454765,5.2311349597,Very Low,5.8932581207,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000016,0.0000001005,0.0000761839,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0100000000,409283000.0000000000,5213.0000000000,39618800000.0000000000,30161527.9142542407,40058244527.9142456055,0.0000255348,0.0000003276,0.0002460797,Very Low,104.5094165573,0.0000170798,129.8064434247,74.2213962963,308.5372562783,2.7440512545,Very Low,3.9390063490,Very Low,0.0000000000,0.0148900000,409283000.0000000000,5213.0000000000,39618800000.0000000000,40028083000.0000000000,0.0000058883,0.0000013610,Very Low,35.8846142757,0.0001056430,802.8864714520,838.7710857277,12.8581949229,Relatively Low,11.2121138672,Relatively Low,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0006245044,0.0000038327,0.0003492485,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,1.0000000000,0.0312500000,409283000.0000000000,5213.0000000000,39618800000.0000000000,30161527.9142542407,40058244527.9142456055,0.0000083601,0.0000003102,0.0006212585,Very Low,106.9261414761,0.0000505411,384.1124266061,585.5657605523,1076.6043286345,9.8898625798,Very Low,11.9394659724,Relatively Low,0.0000000000,0.0006781468,409283000.0000000000,5213.0000000000,39618800000.0000000000,30161527.9142542519,40058244527.9142456055,0.0003985575,0.0000002657,0.0000937001,Very Low,110.6212172132,0.0000009395,7.1398535480,1.9165373923,119.6776081535,3.5109250974,Very Low,4.3917261130,Very Low,4.0000000000,0.0182681760,315888.8587620233,2.2117928286,16809625.4977076985,17125514.3564697206,0.0006654598,0.0000038734,Very Low,3.8401775301,0.0000001565,1.1894532216,5.0296307517,1.8327269938,Very Low,1.7042906890,Very Low,4.0000000000,0.0204021391,407903840.5845158696,5201.9799937840,39535047952.7582778931,39942951793.3427886963,0.0000000070,0.0000040043,Very Low,0.0583395999,0.0004233184,3217.2197865804,3217.2781261802,17.0524727301,Relatively Low,17.9932135371,Relatively Low,,,,,,,,,,,Insufficient Data,,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000851,0.0000001057,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,November 2021 -3,T06007040500,Hawaii,HI,15,Kauai,County,7,15007,40500,6007040500,5943,1030806000.0000000000,459516.6731830848,6.1500338151,19.0467198618,Relatively Moderate,67.4534981234,69.3251533742,18.7719774304,Relatively Low,60.4118835838,72.0858895706,332959.9571449574,167792.7734322688,0.0217301935,165149.4709508616,17.7127618271,33.1217117362,Relatively Moderate,64.7826443794,63.5327635328,0.7680000000,52.5091980000,Relatively Low,23.5125676106,100.0000000000,2.6254599000,,,,,,,,,Not Applicable,,,,,,Not Applicable,,Not Applicable,,0.0699710120,66594737.2848528028,383.9447225607,2917979891.4611377716,2984574628.7459902763,0.0000063169,0.0000000003,Very Low,29.4350693631,0.0000000083,0.0628428106,29.4979121737,1.0184434918,Very Low,1.0330889632,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000021774,0.0000022062,0.0080465986,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,56.0000000000,3.1111111110,0.0000000000,0.0000000000,0.0030589604,No Rating,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,0.0005860614,1030806000.0000000000,5943.0000000000,45166800000.0000000000,46197606000.0000000000,0.0167507621,0.0001397988,Very Low,120075.0000000000,0.0011438300,8693.1080000000,128768.1080000000,20.9111551033,Relatively Moderate,23.9260247408,Relatively Moderate,0.0000000000,0.0000000000,1030806000.0000000000,5943.0000000000,45166800000.0000000000,459516.6731830846,46198065516.6731948853,0.0000180224,0.0000000760,0.0002275779,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000016,0.0000001005,0.0000761839,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,2.0000000000,0.0289855072,1030806000.0000000000,5943.0000000000,45166800000.0000000000,459516.6731830846,46198065516.6731948853,0.0000255348,0.0000003276,0.0002460797,Very Low,762.9385502884,0.0000564393,428.9386307213,3.2776151707,1195.1547961804,4.3095415029,Very Low,5.9417734791,Very Low,0.0000000000,0.0148900000,1030806000.0000000000,5943.0000000000,45166800000.0000000000,46197606000.0000000000,0.0000058883,0.0000028944,Relatively Low,90.3777476786,0.0002561316,1946.6001040973,2036.9778517759,17.2833380202,Relatively Low,14.4752368977,Relatively Low,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,142.0000000000,5.9166666660,40606220.8832914308,293.0385094863,2227092672.0956783295,530.1707312656,2267699423.1497006416,0.0001804370,0.0000114831,0.0042466231,Very Low,43350.6205845832,0.0199094993,151312.1945288390,13.3209920158,194676.1361054380,26.1722849103,Relatively High,24.9423944801,Relatively High,1.0000000000,0.0312500000,1030806000.0000000000,5943.0000000000,45166800000.0000000000,459516.6731830846,46198065516.6731948853,0.0000032387,0.0000018297,0.0000727233,Very Low,104.3268729204,0.0003398069,2582.5325235382,1.0442984855,2687.9036949441,13.4166096589,Relatively Low,15.5570766452,Relatively Low,0.0000000000,0.0001223370,1030806000.0000000000,5943.0000000000,45166800000.0000000000,459516.6731830848,46198065516.6731948853,0.0052856261,0.0000035243,0.0012426410,Very Low,666.5475081608,0.0000025623,19.4736228040,0.0698561550,686.0909871197,6.2836381633,Very Low,7.5500148235,Very Low,9.0000000000,0.0411033970,42337272.9888006300,137.6534442030,1046166175.9429297447,1088503448.9317302704,0.0015593140,0.0000038734,Very Low,2713.5270992744,0.0000219159,166.5606980512,2880.0877973256,15.2190537663,Relatively Moderate,13.5932751503,Relatively Moderate,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0005411070,0.0000037371,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,,,,,,,,,,Insufficient Data,,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000851,0.0000001057,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,November 2021 +1,T06069000802,Hawaii,HI,15,Kauai,County,7,15007,40300,6069000802,8385,992658000.0000000000,147860.5647200878,3.6108521589,18.0705830803,Relatively Low,63.0775787404,63.4969325153,18.6199401875,Relatively Low,59.6420077263,70.5521472393,324935.2155714268,98076.5248682368,0.0296790442,225560.7358958097,1297.9548073803,31.6808724993,Relatively Moderate,48.7278745931,51.8518518519,-0.1330000000,52.5091980000,Relatively Low,23.5125676106,100.0000000000,2.6254599000,,,,,,,,,Not Applicable,,,,,,Not Applicable,,Not Applicable,,0.0699710120,202742385.5800542533,1862.6855876887,14156410466.4337959290,14359152852.0138511658,0.0000357579,0.0000000020,Very Low,507.2650077305,0.0000002606,1.9802850905,509.2452928210,2.6321796000,Very Low,2.5538810410,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000021774,0.0000022062,0.0080465986,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0030589604,No Rating,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,0.0005345855,912658000.0000000000,8385.0000000000,63726000000.0000000000,64638658000.0000000000,0.0167507621,0.0001397988,Very Low,22512.2000000000,0.0001541200,1171.3120000000,23683.5120000000,11.8920653303,Relatively Low,13.0147002820,Relatively Low,0.0000000000,0.0000000000,912658000.0000000000,8385.0000000000,63726000000.0000000000,147860.5647200878,64638805860.5647201538,0.0000180224,0.0000000760,0.0002275779,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000016,0.0000001005,0.0000761839,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,2.0000000000,0.0343605913,912658000.0000000000,8385.0000000000,63726000000.0000000000,147860.5647200878,64638805860.5647201538,0.0000255348,0.0000003276,0.0002460797,Very Low,788.9305592758,0.0000968737,736.2401254130,1.3226671624,1526.4933518512,4.6757862953,Very Low,6.1662913066,Very Low,0.0000000000,0.0148900000,912658000.0000000000,8385.0000000000,63726000000.0000000000,64638658000.0000000000,0.0000058883,0.0000028944,Relatively Low,80.0189118426,0.0003613770,2746.4650635800,2826.4839754226,19.2773661946,Relatively Low,15.4429446232,Relatively Low,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,142.0000000000,5.9166666660,59632790.0585851222,418.9266599156,3183842615.3584799767,51591.3125103788,3243526996.7295761108,0.0001804370,0.0000114831,0.0042466231,Very Low,63663.1136805333,0.0284625391,216315.2971586954,1296.2757495066,281274.6865887354,29.5879096062,Relatively High,26.9708819409,Relatively High,1.0000000000,0.0312500000,912658000.0000000000,8385.0000000000,63726000000.0000000000,147860.5647200878,64638805860.5647201538,0.0000032387,0.0000018297,0.0000727233,Very Low,92.3692287258,0.0004794348,3643.7043933928,0.3360282071,3736.4096503256,14.9734902768,Relatively Low,16.6070545485,Relatively Low,0.0000000000,0.0000653310,912658000.0000000000,8385.0000000000,63726000000.0000000000,147860.5647200878,64638805860.5647201538,0.0089662390,0.0000059784,0.0021079463,Very Low,534.6107152638,0.0000032750,24.8896914625,0.0203625042,559.5207692305,5.8706925202,Very Low,6.7469108145,Very Low,7.0000000000,0.0319693090,198555247.5326173902,978.4678896234,7436355961.1380958557,7634911208.6707134247,0.0015593140,0.0000038734,Very Low,9898.0167648649,0.0001211641,920.8471781755,10818.8639430404,23.6580872265,Relatively High,20.2115884136,Relatively Moderate,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0005411070,0.0000037371,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,,,,,,,,,,Insufficient Data,,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000851,0.0000001057,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,November 2021 +2,T06061021322,Hawaii,HI,15,Hawaii,County,1,15001,20100,6061021322,5213,409283000.0000000000,30161527.9142542519,97.0642891247,26.0474557835,Relatively High,89.4815710967,87.4233128834,24.6571275391,Relatively Moderate,83.8106105391,87.4233128834,754552.3595077734,510222.1167381129,0.0320334258,243454.0359926557,876.2067770047,33.3455935266,Relatively Moderate,67.0519519602,65.5270655271,0.9080000000,50.7751980000,Relatively Low,9.3859370029,40.0000000000,2.5387599000,,,,,,,,,Not Applicable,,,,,,Not Applicable,,Not Applicable,,0.0579710120,1082842.5920536572,13.7920666932,104819706.8679994941,105902549.4600531608,0.0000313713,0.0000000025,Very Low,1.9692852387,0.0000000020,0.0151413322,1.9844265710,0.4142077200,Very Low,0.4374499910,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000021774,0.0000022062,0.0080465986,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000541,No Rating,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,0.0099874373,409283000.0000000000,5213.0000000000,39618800000.0000000000,40028083000.0000000000,0.0008505842,0.0000116917,Very Low,509627.8000000000,0.0314233600,238817.5360000000,748445.3360000000,37.5977579168,Very High,44.7882310288,Very High,1.0000000000,0.0312500000,409283000.0000000000,5213.0000000000,39618800000.0000000000,30161527.9142542407,40058244527.9142456055,0.0000180224,0.0000000760,0.0002275779,Very Low,230.5075462219,0.0000123856,94.1304164907,214.5030827638,539.1410454765,5.2311349597,Very Low,5.8932581207,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000016,0.0000001005,0.0000761839,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0100000000,409283000.0000000000,5213.0000000000,39618800000.0000000000,30161527.9142542407,40058244527.9142456055,0.0000255348,0.0000003276,0.0002460797,Very Low,104.5094165573,0.0000170798,129.8064434247,74.2213962963,308.5372562783,2.7440512545,Very Low,3.9390063490,Very Low,0.0000000000,0.0148900000,409283000.0000000000,5213.0000000000,39618800000.0000000000,40028083000.0000000000,0.0000058883,0.0000013610,Very Low,35.8846142757,0.0001056430,802.8864714520,838.7710857277,12.8581949229,Relatively Low,11.2121138672,Relatively Low,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0006245044,0.0000038327,0.0003492485,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,1.0000000000,0.0312500000,409283000.0000000000,5213.0000000000,39618800000.0000000000,30161527.9142542407,40058244527.9142456055,0.0000083601,0.0000003102,0.0006212585,Very Low,106.9261414761,0.0000505411,384.1124266061,585.5657605523,1076.6043286345,9.8898625798,Very Low,11.9394659724,Relatively Low,0.0000000000,0.0006781468,409283000.0000000000,5213.0000000000,39618800000.0000000000,30161527.9142542519,40058244527.9142456055,0.0003985575,0.0000002657,0.0000937001,Very Low,110.6212172132,0.0000009395,7.1398535480,1.9165373923,119.6776081535,3.5109250974,Very Low,4.3917261130,Very Low,4.0000000000,0.0182681760,315888.8587620233,2.2117928286,16809625.4977076985,17125514.3564697206,0.0006654598,0.0000038734,Very Low,3.8401775301,0.0000001565,1.1894532216,5.0296307517,1.8327269938,Very Low,1.7042906890,Very Low,4.0000000000,0.0204021391,407903840.5845158696,5201.9799937840,39535047952.7582778931,39942951793.3427886963,0.0000000070,0.0000040043,Very Low,0.0583395999,0.0004233184,3217.2197865804,3217.2781261802,17.0524727301,Relatively Low,17.9932135371,Relatively Low,,,,,,,,,,,Insufficient Data,,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000851,0.0000001057,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,November 2021 +3,T06027000800,Hawaii,HI,15,Kauai,County,7,15007,40500,6027000800,5943,1030806000.0000000000,459516.6731830848,6.1500338151,19.0467198618,Relatively Moderate,67.4534981234,69.3251533742,18.7719774304,Relatively Low,60.4118835838,72.0858895706,332959.9571449574,167792.7734322688,0.0217301935,165149.4709508616,17.7127618271,33.1217117362,Relatively Moderate,64.7826443794,63.5327635328,0.7680000000,52.5091980000,Relatively Low,23.5125676106,100.0000000000,2.6254599000,,,,,,,,,Not Applicable,,,,,,Not Applicable,,Not Applicable,,0.0699710120,66594737.2848528028,383.9447225607,2917979891.4611377716,2984574628.7459902763,0.0000063169,0.0000000003,Very Low,29.4350693631,0.0000000083,0.0628428106,29.4979121737,1.0184434918,Very Low,1.0330889632,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000021774,0.0000022062,0.0080465986,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,56.0000000000,3.1111111110,0.0000000000,0.0000000000,0.0030589604,No Rating,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,0.0005860614,1030806000.0000000000,5943.0000000000,45166800000.0000000000,46197606000.0000000000,0.0167507621,0.0001397988,Very Low,120075.0000000000,0.0011438300,8693.1080000000,128768.1080000000,20.9111551033,Relatively Moderate,23.9260247408,Relatively Moderate,0.0000000000,0.0000000000,1030806000.0000000000,5943.0000000000,45166800000.0000000000,459516.6731830846,46198065516.6731948853,0.0000180224,0.0000000760,0.0002275779,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000016,0.0000001005,0.0000761839,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,2.0000000000,0.0289855072,1030806000.0000000000,5943.0000000000,45166800000.0000000000,459516.6731830846,46198065516.6731948853,0.0000255348,0.0000003276,0.0002460797,Very Low,762.9385502884,0.0000564393,428.9386307213,3.2776151707,1195.1547961804,4.3095415029,Very Low,5.9417734791,Very Low,0.0000000000,0.0148900000,1030806000.0000000000,5943.0000000000,45166800000.0000000000,46197606000.0000000000,0.0000058883,0.0000028944,Relatively Low,90.3777476786,0.0002561316,1946.6001040973,2036.9778517759,17.2833380202,Relatively Low,14.4752368977,Relatively Low,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,142.0000000000,5.9166666660,40606220.8832914308,293.0385094863,2227092672.0956783295,530.1707312656,2267699423.1497006416,0.0001804370,0.0000114831,0.0042466231,Very Low,43350.6205845832,0.0199094993,151312.1945288390,13.3209920158,194676.1361054380,26.1722849103,Relatively High,24.9423944801,Relatively High,1.0000000000,0.0312500000,1030806000.0000000000,5943.0000000000,45166800000.0000000000,459516.6731830846,46198065516.6731948853,0.0000032387,0.0000018297,0.0000727233,Very Low,104.3268729204,0.0003398069,2582.5325235382,1.0442984855,2687.9036949441,13.4166096589,Relatively Low,15.5570766452,Relatively Low,0.0000000000,0.0001223370,1030806000.0000000000,5943.0000000000,45166800000.0000000000,459516.6731830848,46198065516.6731948853,0.0052856261,0.0000035243,0.0012426410,Very Low,666.5475081608,0.0000025623,19.4736228040,0.0698561550,686.0909871197,6.2836381633,Very Low,7.5500148235,Very Low,9.0000000000,0.0411033970,42337272.9888006300,137.6534442030,1046166175.9429297447,1088503448.9317302704,0.0015593140,0.0000038734,Very Low,2713.5270992744,0.0000219159,166.5606980512,2880.0877973256,15.2190537663,Relatively Moderate,13.5932751503,Relatively Moderate,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0005411070,0.0000037371,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,,,,,,,,,,Insufficient Data,,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000851,0.0000001057,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,November 2021 4,T15001021010,Hawaii,HI,15,Hawaii,County,1,15001,21010,15001021010,7884,737712000.0000000000,8711454.3090733420,58.4401512286,43.1066279987,Very High,99.4459643383,98.1595092025,42.6674572964,Very High,99.2741170486,99.0797546012,3909779.1321200719,2582125.8111252696,0.1746532017,1327364.3330713348,288.9879234675,31.8903618889,Relatively Moderate,51.0956693021,54.4159544160,-0.0020000000,50.7751980000,Relatively Low,9.3859370029,40.0000000000,2.5387599000,,,,,,,,,Not Applicable,,,,,,Not Applicable,,Not Applicable,,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000478451,0.0000000048,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000021774,0.0000022062,0.0080465986,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000541,No Rating,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,0.0099998852,737712000.0000000000,7884.0000000000,59918400000.0000000000,60656112000.0000000000,0.0008505842,0.0000116917,Very Low,2580741.3999999999,0.1736765400,1319941.7039999999,3900683.1039999998,65.1861714882,Very High,74.2640163391,Very High,1.0000000000,0.0312500000,737712000.0000000000,7884.0000000000,59918400000.0000000000,8711454.3090733420,60664823454.3090744019,0.0000180224,0.0000000760,0.0002275779,Very Low,415.4782459486,0.0000187316,142.3602922696,61.9542156517,619.7927538699,5.4799587665,Very Low,5.9041560145,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000016,0.0000001005,0.0000761839,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0269344664,737712000.0000000000,7884.0000000000,59918400000.0000000000,8711454.3090733420,60664823454.3090744019,0.0000255348,0.0000003276,0.0002460797,Very Low,473.5051910310,0.0000651127,494.8567057547,57.2461948490,1025.6080916347,4.0952789981,Very Low,5.6221049906,Very Low,0.0000000000,0.0148900000,737712000.0000000000,7884.0000000000,59918400000.0000000000,60656112000.0000000000,0.0000058883,0.0000013610,Very Low,64.6802104328,0.0001597715,1214.2637523360,1278.9439627688,14.7995789625,Relatively Low,12.3417814165,Relatively Low,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0006245044,0.0000038327,0.0003492485,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,1.0000000000,0.0312500000,737712000.0000000000,7884.0000000000,59918400000.0000000000,8711454.3090733420,60664823454.3090744019,0.0000083601,0.0000003102,0.0006212585,Very Low,192.7289862509,0.0000764370,580.9212298706,169.1270211135,942.7772372349,9.4618177655,Very Low,10.9242145239,Very Low,1.0000000000,0.0004673635,737712000.0000000000,7884.0000000000,59918400000.0000000000,8711454.3090733420,60664823454.3090744019,0.0006900376,0.0000004601,0.0001622266,Very Low,237.9109428670,0.0000016953,12.8843062101,0.6604918534,251.4557409305,4.4968090785,Very Low,5.3796416501,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0006654598,0.0000038734,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,4.0000000000,0.0207448000,737708710.8628113270,7883.9591351862,59918089427.4153671265,60655798138.2781677246,0.0000000070,0.0000040043,Very Low,0.1075487398,0.0006549135,4977.3427848938,4977.4503336337,19.7224171343,Relatively Low,19.9022650650,Relatively Low,,,,,,,,,,,Insufficient Data,,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000851,0.0000001057,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,November 2021 5,T15001021101,Hawaii,HI,15,Hawaii,County,1,15001,21101,15001021101,3531,365469000.0000000000,1115552.9463470120,41.0551206444,39.6369371498,Very High,99.0514029613,96.6257668712,35.4631324234,Relatively High,97.7453635601,94.4785276074,2244880.4514211570,1569603.2441089998,0.0888473124,675239.5743199890,37.6329921689,35.2805718581,Relatively High,83.0000273575,82.3361823362,2.1180000000,50.7751980000,Relatively Low,9.3859370029,40.0000000000,2.5387599000,,,,,,,,,Not Applicable,,,,,,Not Applicable,,Not Applicable,,0.0679710120,53358423.6905883327,515.5255139327,3917993905.8884677887,3971352329.5790557861,0.0000009778,0.0000000001,Very Low,3.5462107144,0.0000000023,0.0178004814,3.5640111958,0.5034846073,Very Low,0.5625920420,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000021774,0.0000022062,0.0080465986,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000541,No Rating,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,0.0099998512,365469000.0000000000,3531.0000000000,26835600000.0000000000,27201069000.0000000000,0.0008505842,0.0000116917,Very Low,1549795.8000000000,0.0875910700,665692.1319999999,2215487.9320000000,53.9839983966,Very High,68.0399795668,Very High,1.0000000000,0.0312500000,365469000.0000000000,3531.0000000000,26835600000.0000000000,1115552.9463470120,27202184552.9463424683,0.0000180224,0.0000000760,0.0002275779,Very Low,205.8315698678,0.0000083893,63.7587762572,7.9336015953,277.5239477203,4.1923926160,Very Low,4.9971070139,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000016,0.0000001005,0.0000761839,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0289855072,365469000.0000000000,3531.0000000000,26835600000.0000000000,1115552.9463470120,27202184552.9463424683,0.0000255348,0.0000003276,0.0002460797,Very Low,270.4974447523,0.0000335331,254.8514731746,7.9569545004,533.3058724274,3.2931774779,Very Low,5.0015747332,Very Low,0.0000000000,0.0148900000,365469000.0000000000,3531.0000000000,26835600000.0000000000,27201069000.0000000000,0.0000058883,0.0000013610,Very Low,32.0431439731,0.0000715567,543.8312163240,575.8743602971,11.3433526973,Very Low,10.4651653429,Relatively Low,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,142.0000000000,5.9166666660,4828130.5279219840,35.1384012388,267051849.4150594473,0.0000000000,271879979.9429814219,0.0006245044,0.0000038327,0.0003492485,Very Low,17839.8663537918,0.0007968309,6055.9146131274,0.0000000000,23895.7809669192,13.0070200492,Relatively Moderate,13.6546608024,Relatively Moderate,1.0000000000,0.0312500000,365469000.0000000000,3531.0000000000,26835600000.0000000000,1115552.9463470120,27202184552.9463424683,0.0000083601,0.0000003102,0.0006212585,Very Low,95.4796314509,0.0000342338,260.1766695466,21.6577094941,377.3140104915,6.9727783560,Very Low,8.9063071715,Very Low,0.0000000000,0.0003634330,365469000.0000000000,3531.0000000000,26835600000.0000000000,1115552.9463470120,27202184552.9463424683,0.0008889061,0.0000005927,0.0002089802,Very Low,118.0676167774,0.0000007606,5.7804922284,0.0847265791,123.9328355849,3.5520526364,Very Low,4.7010550308,Very Low,13.0000000000,0.0593715740,31437177.7921413518,196.0173546829,1489731895.5901708603,1521169073.3823122978,0.0006654598,0.0000038734,Very Low,1242.0638448472,0.0000450783,342.5948426489,1584.6586874961,12.4708959075,Relatively Moderate,12.2698912376,Relatively Moderate,3.0000000000,0.0188028000,365467633.7354047298,3530.9854379618,26835489328.5099411011,27200956962.2453422546,0.0000000070,0.0000040043,Very Low,0.0482928249,0.0002658574,2020.5164362008,2020.5647290257,14.6032241308,Relatively Low,16.3029908639,Relatively Low,,,,,,,,,,,Insufficient Data,,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000851,0.0000001057,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,November 2021 6,T15007040603,Hawaii,HI,15,Kauai,County,7,15007,40603,15007040603,2544,509507000.0000000000,3763051.3782403329,15.9289735326,23.8613675670,Relatively Moderate,84.6148558545,84.9693251534,22.2413255033,Relatively Moderate,75.9028856597,83.7423312883,553788.5026946985,159866.0053362669,0.0465200191,353552.1448416797,40370.3525167520,35.0215086434,Relatively Moderate,81.3161710393,79.7720797721,1.9560000000,52.5091980000,Relatively Low,23.5125676106,100.0000000000,2.6254599000,,,,,,,,,Not Applicable,,,,,,Not Applicable,,Not Applicable,,0.0699710120,59268365.9828897715,295.9306212878,2249072721.7871074677,2308341087.7699966431,0.0000020063,0.0000000001,Very Low,8.3203647759,0.0000000014,0.0109218690,8.3312866448,0.6682062552,Very Low,0.7166933897,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000021774,0.0000022062,0.0080465986,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,119.0000000000,6.6111111110,1994468.3763317089,1994468.3763317089,0.0030589604,Relatively Moderate,40334.3876510453,40334.3876510453,9.3173396900,Relatively Moderate,10.0118819196,Relatively Moderate,,0.0006288023,509507000.0000000000,2544.0000000000,19334400000.0000000000,19843907000.0000000000,0.0167507621,0.0001397988,Very Low,29888.8000000000,0.0002046000,1554.9600000000,31443.7600000000,13.0703357152,Relatively Low,15.8125293377,Relatively Low,0.0000000000,0.0000000000,509507000.0000000000,2544.0000000000,19334400000.0000000000,3763051.3782403329,19847670051.3782386780,0.0000180224,0.0000000760,0.0002275779,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000016,0.0000001005,0.0000761839,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,2.0000000000,0.0289855072,509500026.7867159247,2543.9789504995,19334240023.7962799072,3763051.3782403329,19847503101.9612274170,0.0000255348,0.0000003276,0.0002460797,Very Low,377.1002611632,0.0000241596,183.6127961654,26.8408852286,587.5539425572,3.4012529352,Very Low,4.9584510525,Very Low,0.0000000000,0.0148900000,509507000.0000000000,2544.0000000000,19334400000.0000000000,19843907000.0000000000,0.0000058883,0.0000028944,Relatively Low,44.6719315627,0.0001096414,833.2745523849,877.9464839477,13.0553404852,Relatively Low,11.5613443431,Relatively Low,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,142.0000000000,5.9166666660,119566421.2469792366,677.5008183296,5149006219.3049850464,0.0000000000,5268572640.5519647598,0.0001804370,0.0000114831,0.0042466231,Very Low,127647.4010480262,0.0460304759,349831.6169989206,0.0000000000,477479.0180469467,35.2957296359,Relatively High,35.5664685650,Very High,1.0000000000,0.0312500000,509507000.0000000000,2544.0000000000,19334400000.0000000000,3763051.3782403329,19847670051.3782386780,0.0000032387,0.0000018297,0.0000727233,Very Low,51.5667080334,0.0001454600,1105.4960019992,8.5519178837,1165.6146279163,10.1552327033,Very Low,12.4507973241,Relatively Low,0.0000000000,0.0002990171,509507000.0000000000,2544.0000000000,19334400000.0000000000,3763051.3782403329,19847670051.3782386780,0.0021625099,0.0000014419,0.0005084021,Very Low,329.4612383326,0.0000010968,8.3360081463,0.5720625944,338.3693090733,4.9645617720,Very Low,6.3071150891,Very Low,3.0000000000,0.0137011320,71084897.0818793178,86.3741073938,656443216.1930950880,727528113.2749742270,0.0015593140,0.0000038734,Relatively Low,1518.6837843730,0.0000045839,34.8375621943,1553.5213465673,12.3886737842,Relatively Moderate,11.6999323670,Relatively Moderate,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0005411070,0.0000037371,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,,,,,,,,,,Insufficient Data,,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000851,0.0000001057,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,November 2021 diff --git a/data/data-pipeline/data_pipeline/tests/sources/national_risk_index/data/output.csv b/data/data-pipeline/data_pipeline/tests/sources/national_risk_index/data/output.csv index b01e6d146..160164d86 100644 --- a/data/data-pipeline/data_pipeline/tests/sources/national_risk_index/data/output.csv +++ b/data/data-pipeline/data_pipeline/tests/sources/national_risk_index/data/output.csv @@ -1,7 +1,7 @@ GEOID10_TRACT,FEMA Risk Index Expected Annual Loss Score,Expected population loss rate (Natural Hazards Risk Index),Expected agricultural loss rate (Natural Hazards Risk Index),Expected building loss rate (Natural Hazards Risk Index),Contains agricultural value -06001020100,18.6199401875,0.0000035067,0.0031812618,0.0000661520,True -06007040300,24.6571275391,0.0000000358,0.0000290505,0.0000014426,True -06007040500,18.7719774304,0.0000034603,0.0000385465,0.0000436593,True +06069000802,18.6199401875,0.0000035067,0.0031812618,0.0000661520,True +06061021322,24.6571275391,0.0000000358,0.0000290505,0.0000014426,True +06027000800,18.7719774304,0.0000034603,0.0000385465,0.0000436593,True 15001021010,42.6674572964,0.0000000408,0.0000331733,0.0000018765,True 15001021101,35.4631324234,0.0000002677,0.0000337348,0.0000507987,True 15007040603,22.2413255033,0.0000182039,0.0107280896,0.0002521232,True diff --git a/data/data-pipeline/data_pipeline/tests/sources/national_risk_index/data/transform.csv b/data/data-pipeline/data_pipeline/tests/sources/national_risk_index/data/transform.csv index ce24d0559..809726014 100644 --- a/data/data-pipeline/data_pipeline/tests/sources/national_risk_index/data/transform.csv +++ b/data/data-pipeline/data_pipeline/tests/sources/national_risk_index/data/transform.csv @@ -1,7 +1,7 @@ OID_,NRI_ID,STATE,STATEABBRV,STATEFIPS,COUNTY,COUNTYTYPE,COUNTYFIPS,STCOFIPS,TRACT,GEOID10_TRACT,POPULATION,BUILDVALUE,AGRIVALUE,AREA,RISK_SCORE,RISK_RATNG,RISK_NPCTL,RISK_SPCTL,FEMA Risk Index Expected Annual Loss Score,EAL_RATNG,EAL_NPCTL,EAL_SPCTL,EAL_VALT,EAL_VALB,EAL_VALP,EAL_VALPE,EAL_VALA,SOVI_SCORE,SOVI_RATNG,SOVI_NPCTL,SOVI_SPCTL,SOVI_VALUE,RESL_SCORE,RESL_RATNG,RESL_NPCTL,RESL_SPCTL,RESL_VALUE,AVLN_EVNTS,AVLN_AFREQ,AVLN_EXPB,AVLN_EXPP,AVLN_EXPPE,AVLN_EXPT,AVLN_HLRB,AVLN_HLRP,AVLN_HLRR,AVLN_EALB,AVLN_EALP,AVLN_EALPE,AVLN_EALT,AVLN_EALS,AVLN_EALR,AVLN_RISKS,AVLN_RISKR,CFLD_EVNTS,CFLD_AFREQ,CFLD_EXPB,CFLD_EXPP,CFLD_EXPPE,CFLD_EXPT,CFLD_HLRB,CFLD_HLRP,CFLD_HLRR,CFLD_EALB,CFLD_EALP,CFLD_EALPE,CFLD_EALT,CFLD_EALS,CFLD_EALR,CFLD_RISKS,CFLD_RISKR,CWAV_EVNTS,CWAV_AFREQ,CWAV_EXPB,CWAV_EXPP,CWAV_EXPPE,CWAV_EXPA,CWAV_EXPT,CWAV_HLRB,CWAV_HLRP,CWAV_HLRA,CWAV_HLRR,CWAV_EALB,CWAV_EALP,CWAV_EALPE,CWAV_EALA,CWAV_EALT,CWAV_EALS,CWAV_EALR,CWAV_RISKS,CWAV_RISKR,DRGT_EVNTS,DRGT_AFREQ,DRGT_EXPA,DRGT_EXPT,DRGT_HLRA,DRGT_HLRR,DRGT_EALA,DRGT_EALT,DRGT_EALS,DRGT_EALR,DRGT_RISKS,DRGT_RISKR,ERQK_EVNTS,ERQK_AFREQ,ERQK_EXPB,ERQK_EXPP,ERQK_EXPPE,ERQK_EXPT,ERQK_HLRB,ERQK_HLRP,ERQK_HLRR,ERQK_EALB,ERQK_EALP,ERQK_EALPE,ERQK_EALT,ERQK_EALS,ERQK_EALR,ERQK_RISKS,ERQK_RISKR,HAIL_EVNTS,HAIL_AFREQ,HAIL_EXPB,HAIL_EXPP,HAIL_EXPPE,HAIL_EXPA,HAIL_EXPT,HAIL_HLRB,HAIL_HLRP,HAIL_HLRA,HAIL_HLRR,HAIL_EALB,HAIL_EALP,HAIL_EALPE,HAIL_EALA,HAIL_EALT,HAIL_EALS,HAIL_EALR,HAIL_RISKS,HAIL_RISKR,HWAV_EVNTS,HWAV_AFREQ,HWAV_EXPB,HWAV_EXPP,HWAV_EXPPE,HWAV_EXPA,HWAV_EXPT,HWAV_HLRB,HWAV_HLRP,HWAV_HLRA,HWAV_HLRR,HWAV_EALB,HWAV_EALP,HWAV_EALPE,HWAV_EALA,HWAV_EALT,HWAV_EALS,HWAV_EALR,HWAV_RISKS,HWAV_RISKR,HRCN_EVNTS,HRCN_AFREQ,HRCN_EXPB,HRCN_EXPP,HRCN_EXPPE,HRCN_EXPA,HRCN_EXPT,HRCN_HLRB,HRCN_HLRP,HRCN_HLRA,HRCN_HLRR,HRCN_EALB,HRCN_EALP,HRCN_EALPE,HRCN_EALA,HRCN_EALT,HRCN_EALS,HRCN_EALR,HRCN_RISKS,HRCN_RISKR,ISTM_EVNTS,ISTM_AFREQ,ISTM_EXPB,ISTM_EXPP,ISTM_EXPPE,ISTM_EXPT,ISTM_HLRB,ISTM_HLRP,ISTM_HLRR,ISTM_EALB,ISTM_EALP,ISTM_EALPE,ISTM_EALT,ISTM_EALS,ISTM_EALR,ISTM_RISKS,ISTM_RISKR,LNDS_EVNTS,LNDS_AFREQ,LNDS_EXPB,LNDS_EXPP,LNDS_EXPPE,LNDS_EXPT,LNDS_HLRB,LNDS_HLRP,LNDS_HLRR,LNDS_EALB,LNDS_EALP,LNDS_EALPE,LNDS_EALT,LNDS_EALS,LNDS_EALR,LNDS_RISKS,LNDS_RISKR,LTNG_EVNTS,LTNG_AFREQ,LTNG_EXPB,LTNG_EXPP,LTNG_EXPPE,LTNG_EXPT,LTNG_HLRB,LTNG_HLRP,LTNG_HLRR,LTNG_EALB,LTNG_EALP,LTNG_EALPE,LTNG_EALT,LTNG_EALS,LTNG_EALR,LTNG_RISKS,LTNG_RISKR,RFLD_EVNTS,RFLD_AFREQ,RFLD_EXPB,RFLD_EXPP,RFLD_EXPPE,RFLD_EXPA,RFLD_EXPT,RFLD_HLRB,RFLD_HLRP,RFLD_HLRA,RFLD_HLRR,RFLD_EALB,RFLD_EALP,RFLD_EALPE,RFLD_EALA,RFLD_EALT,RFLD_EALS,RFLD_EALR,RFLD_RISKS,RFLD_RISKR,SWND_EVNTS,SWND_AFREQ,SWND_EXPB,SWND_EXPP,SWND_EXPPE,SWND_EXPA,SWND_EXPT,SWND_HLRB,SWND_HLRP,SWND_HLRA,SWND_HLRR,SWND_EALB,SWND_EALP,SWND_EALPE,SWND_EALA,SWND_EALT,SWND_EALS,SWND_EALR,SWND_RISKS,SWND_RISKR,TRND_EVNTS,TRND_AFREQ,TRND_EXPB,TRND_EXPP,TRND_EXPPE,TRND_EXPA,TRND_EXPT,TRND_HLRB,TRND_HLRP,TRND_HLRA,TRND_HLRR,TRND_EALB,TRND_EALP,TRND_EALPE,TRND_EALA,TRND_EALT,TRND_EALS,TRND_EALR,TRND_RISKS,TRND_RISKR,TSUN_EVNTS,TSUN_AFREQ,TSUN_EXPB,TSUN_EXPP,TSUN_EXPPE,TSUN_EXPT,TSUN_HLRB,TSUN_HLRP,TSUN_HLRR,TSUN_EALB,TSUN_EALP,TSUN_EALPE,TSUN_EALT,TSUN_EALS,TSUN_EALR,TSUN_RISKS,TSUN_RISKR,VLCN_EVNTS,VLCN_AFREQ,VLCN_EXPB,VLCN_EXPP,VLCN_EXPPE,VLCN_EXPT,VLCN_HLRB,VLCN_HLRP,VLCN_HLRR,VLCN_EALB,VLCN_EALP,VLCN_EALPE,VLCN_EALT,VLCN_EALS,VLCN_EALR,VLCN_RISKS,VLCN_RISKR,WFIR_EVNTS,WFIR_AFREQ,WFIR_EXPB,WFIR_EXPP,WFIR_EXPPE,WFIR_EXPA,WFIR_EXPT,WFIR_HLRB,WFIR_HLRP,WFIR_HLRA,WFIR_HLRR,WFIR_EALB,WFIR_EALP,WFIR_EALPE,WFIR_EALA,WFIR_EALT,WFIR_EALS,WFIR_EALR,WFIR_RISKS,WFIR_RISKR,WNTW_EVNTS,WNTW_AFREQ,WNTW_EXPB,WNTW_EXPP,WNTW_EXPPE,WNTW_EXPA,WNTW_EXPT,WNTW_HLRB,WNTW_HLRP,WNTW_HLRA,WNTW_HLRR,WNTW_EALB,WNTW_EALP,WNTW_EALPE,WNTW_EALA,WNTW_EALT,WNTW_EALS,WNTW_EALR,WNTW_RISKS,WNTW_RISKR,NRI_VER,Expected population loss rate (Natural Hazards Risk Index),Expected agricultural loss rate (Natural Hazards Risk Index),Contains agricultural value,Expected building loss rate (Natural Hazards Risk Index) -1,T06001020100,Hawaii,HI,15,Kauai,County,7,15007,40300,06001020100,8385,992658000.0000000000,147860.5647200878,3.6108521589,18.0705830803,Relatively Low,63.0775787404,63.4969325153,18.6199401875,Relatively Low,59.6420077263,70.5521472393,324935.2155714268,98076.5248682368,0.0296790442,225560.7358958097,1297.9548073803,31.6808724993,Relatively Moderate,48.7278745931,51.8518518519,-0.1330000000,52.5091980000,Relatively Low,23.5125676106,100.0000000000,2.6254599000,,,,,,,,,Not Applicable,,,,,,Not Applicable,,Not Applicable,,0.0699710120,202742385.5800542533,1862.6855876887,14156410466.4337959290,14359152852.0138511658,0.0000357579,0.0000000020,Very Low,507.2650077305,0.0000002606,1.9802850905,509.2452928210,2.6321796000,Very Low,2.5538810410,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000021774,0.0000022062,0.0080465986,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0030589604,No Rating,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,0.0005345855,912658000.0000000000,8385.0000000000,63726000000.0000000000,64638658000.0000076294,0.0167507621,0.0001397988,Very Low,22512.2000000000,0.0001541200,1171.3120000000,23683.5120000000,11.8920653303,Relatively Low,13.0147002820,Relatively Low,0.0000000000,0.0000000000,912658000.0000000000,8385.0000000000,63726000000.0000000000,147860.5647200878,64638805860.5647201538,0.0000180224,0.0000000760,0.0002275779,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000016,0.0000001005,0.0000761839,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,2.0000000000,0.0343605913,912658000.0000000000,8385.0000000000,63726000000.0000000000,147860.5647200878,64638805860.5647201538,0.0000255348,0.0000003276,0.0002460797,Very Low,788.9305592758,0.0000968737,736.2401254130,1.3226671624,1526.4933518512,4.6757862953,Very Low,6.1662913066,Very Low,0.0000000000,0.0148900000,912658000.0000000000,8385.0000000000,63726000000.0000000000,64638658000.0000076294,0.0000058883,0.0000028944,Relatively Low,80.0189118426,0.0003613770,2746.4650635800,2826.4839754226,19.2773661946,Relatively Low,15.4429446232,Relatively Low,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,142.0000000000,5.9166666660,59632790.0585851297,418.9266599156,3183842615.3584799767,51591.3125103788,3243526996.7295761108,0.0001804370,0.0000114831,0.0042466231,Very Low,63663.1136805333,0.0284625391,216315.2971586954,1296.2757495066,281274.6865887354,29.5879096062,Relatively High,26.9708819409,Relatively High,1.0000000000,0.0312500000,912658000.0000000000,8385.0000000000,63726000000.0000000000,147860.5647200878,64638805860.5647201538,0.0000032387,0.0000018297,0.0000727233,Very Low,92.3692287258,0.0004794348,3643.7043933928,0.3360282071,3736.4096503256,14.9734902768,Relatively Low,16.6070545485,Relatively Low,0.0000000000,0.0000653310,912658000.0000000000,8385.0000000000,63726000000.0000000000,147860.5647200878,64638805860.5647201538,0.0089662390,0.0000059784,0.0021079463,Very Low,534.6107152638,0.0000032750,24.8896914625,0.0203625042,559.5207692305,5.8706925202,Very Low,6.7469108145,Very Low,7.0000000000,0.0319693090,198555247.5326173902,978.4678896234,7436355961.1380958557,7634911208.6707124710,0.0015593140,0.0000038734,Very Low,9898.0167648649,0.0001211641,920.8471781755,10818.8639430404,23.6580872265,Relatively High,20.2115884136,Relatively Moderate,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0005411070,0.0000037371,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,,,,,,,,,,Insufficient Data,,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000851,0.0000001057,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,November 2021,0.0000035067,0.0031812618,True,0.0000661520 -2,T06007040300,Hawaii,HI,15,Hawaii,County,1,15001,20100,06007040300,5213,409283000.0000000000,30161527.9142542519,97.0642891247,26.0474557835,Relatively High,89.4815710967,87.4233128834,24.6571275391,Relatively Moderate,83.8106105391,87.4233128834,754552.3595077734,510222.1167381129,0.0320334258,243454.0359926558,876.2067770047,33.3455935266,Relatively Moderate,67.0519519602,65.5270655271,0.9080000000,50.7751980000,Relatively Low,9.3859370029,40.0000000000,2.5387599000,,,,,,,,,Not Applicable,,,,,,Not Applicable,,Not Applicable,,0.0579710120,1082842.5920536572,13.7920666932,104819706.8679994941,105902549.4600531608,0.0000313713,0.0000000025,Very Low,1.9692852387,0.0000000020,0.0151413322,1.9844265710,0.4142077200,Very Low,0.4374499910,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000021774,0.0000022062,0.0080465986,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000541,No Rating,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,0.0099874373,409283000.0000000000,5213.0000000000,39618800000.0000000000,40028083000.0000000000,0.0008505842,0.0000116917,Very Low,509627.8000000000,0.0314233600,238817.5360000000,748445.3360000000,37.5977579168,Very High,44.7882310288,Very High,1.0000000000,0.0312500000,409283000.0000000000,5213.0000000000,39618800000.0000000000,30161527.9142542407,40058244527.9142456055,0.0000180224,0.0000000760,0.0002275779,Very Low,230.5075462219,0.0000123856,94.1304164907,214.5030827638,539.1410454765,5.2311349597,Very Low,5.8932581207,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000016,0.0000001005,0.0000761839,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0100000000,409283000.0000000000,5213.0000000000,39618800000.0000000000,30161527.9142542407,40058244527.9142456055,0.0000255348,0.0000003276,0.0002460797,Very Low,104.5094165573,0.0000170798,129.8064434247,74.2213962963,308.5372562783,2.7440512545,Very Low,3.9390063490,Very Low,0.0000000000,0.0148900000,409283000.0000000000,5213.0000000000,39618800000.0000000000,40028083000.0000000000,0.0000058883,0.0000013610,Very Low,35.8846142757,0.0001056430,802.8864714520,838.7710857277,12.8581949229,Relatively Low,11.2121138672,Relatively Low,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0006245044,0.0000038327,0.0003492485,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,1.0000000000,0.0312500000,409283000.0000000000,5213.0000000000,39618800000.0000000000,30161527.9142542407,40058244527.9142456055,0.0000083601,0.0000003102,0.0006212585,Very Low,106.9261414761,0.0000505411,384.1124266061,585.5657605523,1076.6043286345,9.8898625798,Very Low,11.9394659724,Relatively Low,0.0000000000,0.0006781468,409283000.0000000000,5213.0000000000,39618800000.0000000000,30161527.9142542519,40058244527.9142456055,0.0003985575,0.0000002657,0.0000937001,Very Low,110.6212172132,0.0000009395,7.1398535480,1.9165373923,119.6776081535,3.5109250974,Very Low,4.3917261130,Very Low,4.0000000000,0.0182681760,315888.8587620232,2.2117928286,16809625.4977076985,17125514.3564697206,0.0006654598,0.0000038734,Very Low,3.8401775301,0.0000001565,1.1894532216,5.0296307517,1.8327269938,Very Low,1.7042906890,Very Low,4.0000000000,0.0204021391,407903840.5845158696,5201.9799937840,39535047952.7582778931,39942951793.3427886963,0.0000000070,0.0000040043,Very Low,0.0583395999,0.0004233184,3217.2197865804,3217.2781261802,17.0524727301,Relatively Low,17.9932135371,Relatively Low,,,,,,,,,,,Insufficient Data,,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000851,0.0000001057,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,November 2021,0.0000000358,0.0000290505,True,0.0000014426 -3,T06007040500,Hawaii,HI,15,Kauai,County,7,15007,40500,06007040500,5943,1030806000.0000000000,459516.6731830848,6.1500338151,19.0467198618,Relatively Moderate,67.4534981234,69.3251533742,18.7719774304,Relatively Low,60.4118835838,72.0858895706,332959.9571449574,167792.7734322688,0.0217301935,165149.4709508616,17.7127618271,33.1217117362,Relatively Moderate,64.7826443794,63.5327635328,0.7680000000,52.5091980000,Relatively Low,23.5125676106,100.0000000000,2.6254599000,,,,,,,,,Not Applicable,,,,,,Not Applicable,,Not Applicable,,0.0699710120,66594737.2848528028,383.9447225607,2917979891.4611377716,2984574628.7459902763,0.0000063169,0.0000000003,Very Low,29.4350693631,0.0000000083,0.0628428106,29.4979121737,1.0184434918,Very Low,1.0330889632,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000021774,0.0000022062,0.0080465986,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,56.0000000000,3.1111111110,0.0000000000,0.0000000000,0.0030589604,No Rating,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,0.0005860614,1030806000.0000000000,5943.0000000000,45166800000.0000000000,46197606000.0000000000,0.0167507621,0.0001397988,Very Low,120075.0000000000,0.0011438300,8693.1080000000,128768.1080000000,20.9111551033,Relatively Moderate,23.9260247408,Relatively Moderate,0.0000000000,0.0000000000,1030806000.0000000000,5943.0000000000,45166800000.0000000000,459516.6731830846,46198065516.6731948853,0.0000180224,0.0000000760,0.0002275779,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000016,0.0000001005,0.0000761839,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,2.0000000000,0.0289855072,1030806000.0000000000,5943.0000000000,45166800000.0000000000,459516.6731830846,46198065516.6731948853,0.0000255348,0.0000003276,0.0002460797,Very Low,762.9385502884,0.0000564393,428.9386307213,3.2776151707,1195.1547961804,4.3095415029,Very Low,5.9417734791,Very Low,0.0000000000,0.0148900000,1030806000.0000000000,5943.0000000000,45166800000.0000000000,46197606000.0000000000,0.0000058883,0.0000028944,Relatively Low,90.3777476786,0.0002561316,1946.6001040973,2036.9778517759,17.2833380202,Relatively Low,14.4752368977,Relatively Low,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,142.0000000000,5.9166666660,40606220.8832914308,293.0385094863,2227092672.0956783295,530.1707312656,2267699423.1497006416,0.0001804370,0.0000114831,0.0042466231,Very Low,43350.6205845832,0.0199094993,151312.1945288390,13.3209920158,194676.1361054380,26.1722849103,Relatively High,24.9423944801,Relatively High,1.0000000000,0.0312500000,1030806000.0000000000,5943.0000000000,45166800000.0000000000,459516.6731830846,46198065516.6731948853,0.0000032387,0.0000018297,0.0000727233,Very Low,104.3268729204,0.0003398069,2582.5325235382,1.0442984855,2687.9036949441,13.4166096589,Relatively Low,15.5570766452,Relatively Low,0.0000000000,0.0001223370,1030806000.0000000000,5943.0000000000,45166800000.0000000000,459516.6731830848,46198065516.6731948853,0.0052856261,0.0000035243,0.0012426410,Very Low,666.5475081608,0.0000025623,19.4736228040,0.0698561550,686.0909871197,6.2836381633,Very Low,7.5500148235,Very Low,9.0000000000,0.0411033970,42337272.9888006300,137.6534442030,1046166175.9429298639,1088503448.9317302704,0.0015593140,0.0000038734,Very Low,2713.5270992744,0.0000219159,166.5606980512,2880.0877973256,15.2190537663,Relatively Moderate,13.5932751503,Relatively Moderate,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0005411070,0.0000037371,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,,,,,,,,,,Insufficient Data,,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000851,0.0000001057,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,November 2021,0.0000034603,0.0000385465,True,0.0000436593 +1,T06069000802,Hawaii,HI,15,Kauai,County,7,15007,40300,06069000802,8385,992658000.0000000000,147860.5647200878,3.6108521589,18.0705830803,Relatively Low,63.0775787404,63.4969325153,18.6199401875,Relatively Low,59.6420077263,70.5521472393,324935.2155714268,98076.5248682368,0.0296790442,225560.7358958097,1297.9548073803,31.6808724993,Relatively Moderate,48.7278745931,51.8518518519,-0.1330000000,52.5091980000,Relatively Low,23.5125676106,100.0000000000,2.6254599000,,,,,,,,,Not Applicable,,,,,,Not Applicable,,Not Applicable,,0.0699710120,202742385.5800542533,1862.6855876887,14156410466.4337959290,14359152852.0138511658,0.0000357579,0.0000000020,Very Low,507.2650077305,0.0000002606,1.9802850905,509.2452928210,2.6321796000,Very Low,2.5538810410,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000021774,0.0000022062,0.0080465986,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0030589604,No Rating,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,0.0005345855,912658000.0000000000,8385.0000000000,63726000000.0000000000,64638658000.0000076294,0.0167507621,0.0001397988,Very Low,22512.2000000000,0.0001541200,1171.3120000000,23683.5120000000,11.8920653303,Relatively Low,13.0147002820,Relatively Low,0.0000000000,0.0000000000,912658000.0000000000,8385.0000000000,63726000000.0000000000,147860.5647200878,64638805860.5647201538,0.0000180224,0.0000000760,0.0002275779,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000016,0.0000001005,0.0000761839,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,2.0000000000,0.0343605913,912658000.0000000000,8385.0000000000,63726000000.0000000000,147860.5647200878,64638805860.5647201538,0.0000255348,0.0000003276,0.0002460797,Very Low,788.9305592758,0.0000968737,736.2401254130,1.3226671624,1526.4933518512,4.6757862953,Very Low,6.1662913066,Very Low,0.0000000000,0.0148900000,912658000.0000000000,8385.0000000000,63726000000.0000000000,64638658000.0000076294,0.0000058883,0.0000028944,Relatively Low,80.0189118426,0.0003613770,2746.4650635800,2826.4839754226,19.2773661946,Relatively Low,15.4429446232,Relatively Low,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,142.0000000000,5.9166666660,59632790.0585851297,418.9266599156,3183842615.3584799767,51591.3125103788,3243526996.7295761108,0.0001804370,0.0000114831,0.0042466231,Very Low,63663.1136805333,0.0284625391,216315.2971586954,1296.2757495066,281274.6865887354,29.5879096062,Relatively High,26.9708819409,Relatively High,1.0000000000,0.0312500000,912658000.0000000000,8385.0000000000,63726000000.0000000000,147860.5647200878,64638805860.5647201538,0.0000032387,0.0000018297,0.0000727233,Very Low,92.3692287258,0.0004794348,3643.7043933928,0.3360282071,3736.4096503256,14.9734902768,Relatively Low,16.6070545485,Relatively Low,0.0000000000,0.0000653310,912658000.0000000000,8385.0000000000,63726000000.0000000000,147860.5647200878,64638805860.5647201538,0.0089662390,0.0000059784,0.0021079463,Very Low,534.6107152638,0.0000032750,24.8896914625,0.0203625042,559.5207692305,5.8706925202,Very Low,6.7469108145,Very Low,7.0000000000,0.0319693090,198555247.5326173902,978.4678896234,7436355961.1380958557,7634911208.6707124710,0.0015593140,0.0000038734,Very Low,9898.0167648649,0.0001211641,920.8471781755,10818.8639430404,23.6580872265,Relatively High,20.2115884136,Relatively Moderate,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0005411070,0.0000037371,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,,,,,,,,,,Insufficient Data,,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000851,0.0000001057,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,November 2021,0.0000035067,0.0031812618,True,0.0000661520 +2,T06061021322,Hawaii,HI,15,Hawaii,County,1,15001,20100,06061021322,5213,409283000.0000000000,30161527.9142542519,97.0642891247,26.0474557835,Relatively High,89.4815710967,87.4233128834,24.6571275391,Relatively Moderate,83.8106105391,87.4233128834,754552.3595077734,510222.1167381129,0.0320334258,243454.0359926558,876.2067770047,33.3455935266,Relatively Moderate,67.0519519602,65.5270655271,0.9080000000,50.7751980000,Relatively Low,9.3859370029,40.0000000000,2.5387599000,,,,,,,,,Not Applicable,,,,,,Not Applicable,,Not Applicable,,0.0579710120,1082842.5920536572,13.7920666932,104819706.8679994941,105902549.4600531608,0.0000313713,0.0000000025,Very Low,1.9692852387,0.0000000020,0.0151413322,1.9844265710,0.4142077200,Very Low,0.4374499910,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000021774,0.0000022062,0.0080465986,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000541,No Rating,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,0.0099874373,409283000.0000000000,5213.0000000000,39618800000.0000000000,40028083000.0000000000,0.0008505842,0.0000116917,Very Low,509627.8000000000,0.0314233600,238817.5360000000,748445.3360000000,37.5977579168,Very High,44.7882310288,Very High,1.0000000000,0.0312500000,409283000.0000000000,5213.0000000000,39618800000.0000000000,30161527.9142542407,40058244527.9142456055,0.0000180224,0.0000000760,0.0002275779,Very Low,230.5075462219,0.0000123856,94.1304164907,214.5030827638,539.1410454765,5.2311349597,Very Low,5.8932581207,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000016,0.0000001005,0.0000761839,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0100000000,409283000.0000000000,5213.0000000000,39618800000.0000000000,30161527.9142542407,40058244527.9142456055,0.0000255348,0.0000003276,0.0002460797,Very Low,104.5094165573,0.0000170798,129.8064434247,74.2213962963,308.5372562783,2.7440512545,Very Low,3.9390063490,Very Low,0.0000000000,0.0148900000,409283000.0000000000,5213.0000000000,39618800000.0000000000,40028083000.0000000000,0.0000058883,0.0000013610,Very Low,35.8846142757,0.0001056430,802.8864714520,838.7710857277,12.8581949229,Relatively Low,11.2121138672,Relatively Low,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0006245044,0.0000038327,0.0003492485,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,1.0000000000,0.0312500000,409283000.0000000000,5213.0000000000,39618800000.0000000000,30161527.9142542407,40058244527.9142456055,0.0000083601,0.0000003102,0.0006212585,Very Low,106.9261414761,0.0000505411,384.1124266061,585.5657605523,1076.6043286345,9.8898625798,Very Low,11.9394659724,Relatively Low,0.0000000000,0.0006781468,409283000.0000000000,5213.0000000000,39618800000.0000000000,30161527.9142542519,40058244527.9142456055,0.0003985575,0.0000002657,0.0000937001,Very Low,110.6212172132,0.0000009395,7.1398535480,1.9165373923,119.6776081535,3.5109250974,Very Low,4.3917261130,Very Low,4.0000000000,0.0182681760,315888.8587620232,2.2117928286,16809625.4977076985,17125514.3564697206,0.0006654598,0.0000038734,Very Low,3.8401775301,0.0000001565,1.1894532216,5.0296307517,1.8327269938,Very Low,1.7042906890,Very Low,4.0000000000,0.0204021391,407903840.5845158696,5201.9799937840,39535047952.7582778931,39942951793.3427886963,0.0000000070,0.0000040043,Very Low,0.0583395999,0.0004233184,3217.2197865804,3217.2781261802,17.0524727301,Relatively Low,17.9932135371,Relatively Low,,,,,,,,,,,Insufficient Data,,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000851,0.0000001057,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,November 2021,0.0000000358,0.0000290505,True,0.0000014426 +3,T06027000800,Hawaii,HI,15,Kauai,County,7,15007,40500,06027000800,5943,1030806000.0000000000,459516.6731830848,6.1500338151,19.0467198618,Relatively Moderate,67.4534981234,69.3251533742,18.7719774304,Relatively Low,60.4118835838,72.0858895706,332959.9571449574,167792.7734322688,0.0217301935,165149.4709508616,17.7127618271,33.1217117362,Relatively Moderate,64.7826443794,63.5327635328,0.7680000000,52.5091980000,Relatively Low,23.5125676106,100.0000000000,2.6254599000,,,,,,,,,Not Applicable,,,,,,Not Applicable,,Not Applicable,,0.0699710120,66594737.2848528028,383.9447225607,2917979891.4611377716,2984574628.7459902763,0.0000063169,0.0000000003,Very Low,29.4350693631,0.0000000083,0.0628428106,29.4979121737,1.0184434918,Very Low,1.0330889632,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000021774,0.0000022062,0.0080465986,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,56.0000000000,3.1111111110,0.0000000000,0.0000000000,0.0030589604,No Rating,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,0.0005860614,1030806000.0000000000,5943.0000000000,45166800000.0000000000,46197606000.0000000000,0.0167507621,0.0001397988,Very Low,120075.0000000000,0.0011438300,8693.1080000000,128768.1080000000,20.9111551033,Relatively Moderate,23.9260247408,Relatively Moderate,0.0000000000,0.0000000000,1030806000.0000000000,5943.0000000000,45166800000.0000000000,459516.6731830846,46198065516.6731948853,0.0000180224,0.0000000760,0.0002275779,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000016,0.0000001005,0.0000761839,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,2.0000000000,0.0289855072,1030806000.0000000000,5943.0000000000,45166800000.0000000000,459516.6731830846,46198065516.6731948853,0.0000255348,0.0000003276,0.0002460797,Very Low,762.9385502884,0.0000564393,428.9386307213,3.2776151707,1195.1547961804,4.3095415029,Very Low,5.9417734791,Very Low,0.0000000000,0.0148900000,1030806000.0000000000,5943.0000000000,45166800000.0000000000,46197606000.0000000000,0.0000058883,0.0000028944,Relatively Low,90.3777476786,0.0002561316,1946.6001040973,2036.9778517759,17.2833380202,Relatively Low,14.4752368977,Relatively Low,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,142.0000000000,5.9166666660,40606220.8832914308,293.0385094863,2227092672.0956783295,530.1707312656,2267699423.1497006416,0.0001804370,0.0000114831,0.0042466231,Very Low,43350.6205845832,0.0199094993,151312.1945288390,13.3209920158,194676.1361054380,26.1722849103,Relatively High,24.9423944801,Relatively High,1.0000000000,0.0312500000,1030806000.0000000000,5943.0000000000,45166800000.0000000000,459516.6731830846,46198065516.6731948853,0.0000032387,0.0000018297,0.0000727233,Very Low,104.3268729204,0.0003398069,2582.5325235382,1.0442984855,2687.9036949441,13.4166096589,Relatively Low,15.5570766452,Relatively Low,0.0000000000,0.0001223370,1030806000.0000000000,5943.0000000000,45166800000.0000000000,459516.6731830848,46198065516.6731948853,0.0052856261,0.0000035243,0.0012426410,Very Low,666.5475081608,0.0000025623,19.4736228040,0.0698561550,686.0909871197,6.2836381633,Very Low,7.5500148235,Very Low,9.0000000000,0.0411033970,42337272.9888006300,137.6534442030,1046166175.9429298639,1088503448.9317302704,0.0015593140,0.0000038734,Very Low,2713.5270992744,0.0000219159,166.5606980512,2880.0877973256,15.2190537663,Relatively Moderate,13.5932751503,Relatively Moderate,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0005411070,0.0000037371,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,,,,,,,,,,Insufficient Data,,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000851,0.0000001057,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,November 2021,0.0000034603,0.0000385465,True,0.0000436593 4,T15001021010,Hawaii,HI,15,Hawaii,County,1,15001,21010,15001021010,7884,737712000.0000000000,8711454.3090733420,58.4401512286,43.1066279987,Very High,99.4459643383,98.1595092025,42.6674572964,Very High,99.2741170486,99.0797546012,3909779.1321200719,2582125.8111252696,0.1746532017,1327364.3330713348,288.9879234675,31.8903618889,Relatively Moderate,51.0956693021,54.4159544160,-0.0020000000,50.7751980000,Relatively Low,9.3859370029,40.0000000000,2.5387599000,,,,,,,,,Not Applicable,,,,,,Not Applicable,,Not Applicable,,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000478451,0.0000000048,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000021774,0.0000022062,0.0080465986,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000541,No Rating,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,0.0099998852,737712000.0000000000,7884.0000000000,59918400000.0000000000,60656112000.0000000000,0.0008505842,0.0000116917,Very Low,2580741.3999999999,0.1736765400,1319941.7039999999,3900683.1039999998,65.1861714882,Very High,74.2640163391,Very High,1.0000000000,0.0312500000,737712000.0000000000,7884.0000000000,59918400000.0000000000,8711454.3090733420,60664823454.3090744019,0.0000180224,0.0000000760,0.0002275779,Very Low,415.4782459486,0.0000187316,142.3602922696,61.9542156517,619.7927538699,5.4799587665,Very Low,5.9041560145,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000016,0.0000001005,0.0000761839,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0269344664,737712000.0000000000,7884.0000000000,59918400000.0000000000,8711454.3090733420,60664823454.3090744019,0.0000255348,0.0000003276,0.0002460797,Very Low,473.5051910310,0.0000651127,494.8567057547,57.2461948490,1025.6080916347,4.0952789981,Very Low,5.6221049906,Very Low,0.0000000000,0.0148900000,737712000.0000000000,7884.0000000000,59918400000.0000000000,60656112000.0000000000,0.0000058883,0.0000013610,Very Low,64.6802104328,0.0001597715,1214.2637523360,1278.9439627688,14.7995789625,Relatively Low,12.3417814165,Relatively Low,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0006245044,0.0000038327,0.0003492485,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,1.0000000000,0.0312500000,737712000.0000000000,7884.0000000000,59918400000.0000000000,8711454.3090733420,60664823454.3090744019,0.0000083601,0.0000003102,0.0006212585,Very Low,192.7289862509,0.0000764370,580.9212298706,169.1270211135,942.7772372349,9.4618177655,Very Low,10.9242145239,Very Low,1.0000000000,0.0004673635,737712000.0000000000,7884.0000000000,59918400000.0000000000,8711454.3090733420,60664823454.3090744019,0.0006900376,0.0000004601,0.0001622266,Very Low,237.9109428670,0.0000016953,12.8843062101,0.6604918534,251.4557409305,4.4968090785,Very Low,5.3796416501,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0006654598,0.0000038734,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,4.0000000000,0.0207448000,737708710.8628113270,7883.9591351862,59918089427.4153594971,60655798138.2781677246,0.0000000070,0.0000040043,Very Low,0.1075487398,0.0006549135,4977.3427848938,4977.4503336337,19.7224171343,Relatively Low,19.9022650650,Relatively Low,,,,,,,,,,,Insufficient Data,,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000851,0.0000001057,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,November 2021,0.0000000408,0.0000331733,True,0.0000018765 5,T15001021101,Hawaii,HI,15,Hawaii,County,1,15001,21101,15001021101,3531,365469000.0000000000,1115552.9463470120,41.0551206444,39.6369371498,Very High,99.0514029613,96.6257668712,35.4631324234,Relatively High,97.7453635601,94.4785276074,2244880.4514211570,1569603.2441089998,0.0888473124,675239.5743199890,37.6329921689,35.2805718581,Relatively High,83.0000273575,82.3361823362,2.1180000000,50.7751980000,Relatively Low,9.3859370029,40.0000000000,2.5387599000,,,,,,,,,Not Applicable,,,,,,Not Applicable,,Not Applicable,,0.0679710120,53358423.6905883327,515.5255139327,3917993905.8884682655,3971352329.5790553093,0.0000009778,0.0000000001,Very Low,3.5462107144,0.0000000023,0.0178004814,3.5640111958,0.5034846073,Very Low,0.5625920420,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000021774,0.0000022062,0.0080465986,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000541,No Rating,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,0.0099998512,365469000.0000000000,3531.0000000000,26835600000.0000000000,27201069000.0000000000,0.0008505842,0.0000116917,Very Low,1549795.8000000000,0.0875910700,665692.1319999999,2215487.9320000000,53.9839983966,Very High,68.0399795668,Very High,1.0000000000,0.0312500000,365469000.0000000000,3531.0000000000,26835600000.0000000000,1115552.9463470120,27202184552.9463424683,0.0000180224,0.0000000760,0.0002275779,Very Low,205.8315698678,0.0000083893,63.7587762572,7.9336015953,277.5239477203,4.1923926160,Very Low,4.9971070139,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000016,0.0000001005,0.0000761839,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0289855072,365469000.0000000000,3531.0000000000,26835600000.0000000000,1115552.9463470120,27202184552.9463424683,0.0000255348,0.0000003276,0.0002460797,Very Low,270.4974447523,0.0000335331,254.8514731746,7.9569545004,533.3058724274,3.2931774779,Very Low,5.0015747332,Very Low,0.0000000000,0.0148900000,365469000.0000000000,3531.0000000000,26835600000.0000000000,27201069000.0000000000,0.0000058883,0.0000013610,Very Low,32.0431439731,0.0000715567,543.8312163240,575.8743602971,11.3433526973,Very Low,10.4651653429,Relatively Low,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,142.0000000000,5.9166666660,4828130.5279219840,35.1384012388,267051849.4150594473,0.0000000000,271879979.9429814219,0.0006245044,0.0000038327,0.0003492485,Very Low,17839.8663537918,0.0007968309,6055.9146131274,0.0000000000,23895.7809669192,13.0070200492,Relatively Moderate,13.6546608024,Relatively Moderate,1.0000000000,0.0312500000,365469000.0000000000,3531.0000000000,26835600000.0000000000,1115552.9463470120,27202184552.9463424683,0.0000083601,0.0000003102,0.0006212585,Very Low,95.4796314509,0.0000342338,260.1766695466,21.6577094941,377.3140104915,6.9727783560,Very Low,8.9063071715,Very Low,0.0000000000,0.0003634330,365469000.0000000000,3531.0000000000,26835600000.0000000000,1115552.9463470120,27202184552.9463424683,0.0008889061,0.0000005927,0.0002089802,Very Low,118.0676167774,0.0000007606,5.7804922284,0.0847265791,123.9328355849,3.5520526364,Very Low,4.7010550308,Very Low,13.0000000000,0.0593715740,31437177.7921413518,196.0173546829,1489731895.5901708603,1521169073.3823122978,0.0006654598,0.0000038734,Very Low,1242.0638448472,0.0000450783,342.5948426489,1584.6586874961,12.4708959075,Relatively Moderate,12.2698912376,Relatively Moderate,3.0000000000,0.0188028000,365467633.7354047298,3530.9854379618,26835489328.5099411011,27200956962.2453422546,0.0000000070,0.0000040043,Very Low,0.0482928249,0.0002658574,2020.5164362008,2020.5647290257,14.6032241308,Relatively Low,16.3029908639,Relatively Low,,,,,,,,,,,Insufficient Data,,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000851,0.0000001057,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,November 2021,0.0000002677,0.0000337348,True,0.0000507987 6,T15007040603,Hawaii,HI,15,Kauai,County,7,15007,40603,15007040603,2544,509507000.0000000000,3763051.3782403329,15.9289735326,23.8613675670,Relatively Moderate,84.6148558545,84.9693251534,22.2413255033,Relatively Moderate,75.9028856597,83.7423312883,553788.5026946985,159866.0053362670,0.0465200191,353552.1448416796,40370.3525167520,35.0215086434,Relatively Moderate,81.3161710393,79.7720797721,1.9560000000,52.5091980000,Relatively Low,23.5125676106,100.0000000000,2.6254599000,,,,,,,,,Not Applicable,,,,,,Not Applicable,,Not Applicable,,0.0699710120,59268365.9828897640,295.9306212878,2249072721.7871074677,2308341087.7699966431,0.0000020063,0.0000000001,Very Low,8.3203647759,0.0000000014,0.0109218690,8.3312866448,0.6682062552,Very Low,0.7166933897,Very Low,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000021774,0.0000022062,0.0080465986,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,119.0000000000,6.6111111110,1994468.3763317089,1994468.3763317089,0.0030589604,Relatively Moderate,40334.3876510453,40334.3876510453,9.3173396900,Relatively Moderate,10.0118819196,Relatively Moderate,,0.0006288023,509507000.0000000000,2544.0000000000,19334400000.0000000000,19843907000.0000000000,0.0167507621,0.0001397988,Very Low,29888.8000000000,0.0002046000,1554.9600000000,31443.7600000000,13.0703357152,Relatively Low,15.8125293377,Relatively Low,0.0000000000,0.0000000000,509507000.0000000000,2544.0000000000,19334400000.0000000000,3763051.3782403329,19847670051.3782386780,0.0000180224,0.0000000760,0.0002275779,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000016,0.0000001005,0.0000761839,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,2.0000000000,0.0289855072,509500026.7867159843,2543.9789504995,19334240023.7962799072,3763051.3782403329,19847503101.9612274170,0.0000255348,0.0000003276,0.0002460797,Very Low,377.1002611632,0.0000241596,183.6127961654,26.8408852286,587.5539425572,3.4012529352,Very Low,4.9584510525,Very Low,0.0000000000,0.0148900000,509507000.0000000000,2544.0000000000,19334400000.0000000000,19843907000.0000000000,0.0000058883,0.0000028944,Relatively Low,44.6719315627,0.0001096414,833.2745523849,877.9464839477,13.0553404852,Relatively Low,11.5613443431,Relatively Low,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,,,,,,,,,Insufficient Data,,,,,,Insufficient Data,,Insufficient Data,142.0000000000,5.9166666660,119566421.2469792217,677.5008183296,5149006219.3049850464,0.0000000000,5268572640.5519647598,0.0001804370,0.0000114831,0.0042466231,Very Low,127647.4010480262,0.0460304759,349831.6169989206,0.0000000000,477479.0180469467,35.2957296359,Relatively High,35.5664685650,Very High,1.0000000000,0.0312500000,509507000.0000000000,2544.0000000000,19334400000.0000000000,3763051.3782403329,19847670051.3782386780,0.0000032387,0.0000018297,0.0000727233,Very Low,51.5667080334,0.0001454600,1105.4960019992,8.5519178837,1165.6146279163,10.1552327033,Very Low,12.4507973241,Relatively Low,0.0000000000,0.0002990171,509507000.0000000000,2544.0000000000,19334400000.0000000000,3763051.3782403329,19847670051.3782386780,0.0021625099,0.0000014419,0.0005084021,Very Low,329.4612383326,0.0000010968,8.3360081463,0.5720625944,338.3693090733,4.9645617720,Very Low,6.3071150891,Very Low,3.0000000000,0.0137011320,71084897.0818793178,86.3741073938,656443216.1930950880,727528113.2749742270,0.0015593140,0.0000038734,Relatively Low,1518.6837843730,0.0000045839,34.8375621943,1553.5213465673,12.3886737842,Relatively Moderate,11.6999323670,Relatively Moderate,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0005411070,0.0000037371,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,,,,,,,,,,,Insufficient Data,,,,,,,Insufficient Data,,Insufficient Data,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000851,0.0000001057,0.0000000000,No Rating,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,No Expected Annual Losses,0.0000000000,No Rating,November 2021,0.0000182039,0.0107280896,True,0.0002521232 diff --git a/data/data-pipeline/data_pipeline/tests/sources/national_risk_index/test_etl.py b/data/data-pipeline/data_pipeline/tests/sources/national_risk_index/test_etl.py index 132bc335b..5839c61d4 100644 --- a/data/data-pipeline/data_pipeline/tests/sources/national_risk_index/test_etl.py +++ b/data/data-pipeline/data_pipeline/tests/sources/national_risk_index/test_etl.py @@ -1,7 +1,5 @@ # pylint: disable=protected-access -from unittest import mock import pathlib -import requests from data_pipeline.etl.base import ValidGeoLevel from data_pipeline.etl.sources.national_risk_index.etl import ( @@ -36,35 +34,6 @@ def setup_method(self, _method, filename=__file__): """ super().setup_method(_method=_method, filename=filename) - def _setup_etl_instance_and_run_extract(self, mock_etl, mock_paths): - with mock.patch("data_pipeline.utils.requests") as requests_mock: - zip_file_fixture_src = ( - self._DATA_DIRECTORY_FOR_TEST / "NRI_Table_CensusTracts.zip" - ) - tmp_path = mock_paths[1] - - # Create mock response. - with open(zip_file_fixture_src, mode="rb") as file: - file_contents = file.read() - response_mock = requests.Response() - response_mock.status_code = 200 - # pylint: disable=protected-access - response_mock._content = file_contents - - # Return text fixture: - requests_mock.get = mock.MagicMock(return_value=response_mock) - - # Instantiate the ETL class. - etl = NationalRiskIndexETL() - - # Monkey-patch the temporary directory to the one used in the test - etl.TMP_PATH = tmp_path - - # Run the extract method. - etl.extract() - - return etl - def test_init(self, mock_etl, mock_paths): """Tests that the mock NationalRiskIndexETL class instance was initiliazed correctly. @@ -87,11 +56,6 @@ def test_init(self, mock_etl, mock_paths): assert etl.GEOID_FIELD_NAME == "GEOID10" assert etl.GEOID_TRACT_FIELD_NAME == "GEOID10_TRACT" assert etl.NAME == "national_risk_index" - assert etl.LAST_UPDATED_YEAR == 2020 - assert ( - etl.SOURCE_URL - == "https://hazards.fema.gov/nri/Content/StaticDocuments/DataDownload//NRI_Table_CensusTracts/NRI_Table_CensusTracts.zip" - ) assert etl.GEO_LEVEL == ValidGeoLevel.CENSUS_TRACT assert etl.COLUMNS_TO_KEEP == [ etl.GEOID_TRACT_FIELD_NAME, @@ -109,6 +73,6 @@ def test_get_output_file_path(self, mock_etl, mock_paths): output_file_path = etl._get_output_file_path() expected_output_file_path = ( - data_path / "dataset" / "national_risk_index_2020" / "usa.csv" + data_path / "dataset" / "national_risk_index" / "usa.csv" ) assert output_file_path == expected_output_file_path diff --git a/data/data-pipeline/data_pipeline/tile/generate.py b/data/data-pipeline/data_pipeline/tile/generate.py index df37c175a..d5676b793 100644 --- a/data/data-pipeline/data_pipeline/tile/generate.py +++ b/data/data-pipeline/data_pipeline/tile/generate.py @@ -73,6 +73,10 @@ def _generate_score_tiles() -> None: def _generate_tribal_tiles() -> None: """Generates tribal layer tiles""" + + USA_TRIBAL_MIN_ZOOM = 0 + USA_TRIBAL_MAX_ZOOM = 11 + tribal_tiles_path = data_path / "tribal" / "tiles" tribal_geojson_dir = data_path / "tribal" / "geojson" @@ -83,6 +87,7 @@ def _generate_tribal_tiles() -> None: logger.info("Generating Tribal mbtiles file") cmd = "tippecanoe " cmd += "--layer=blocks " + cmd += f"--minimum-zoom={USA_TRIBAL_MIN_ZOOM} --maximum-zoom={USA_TRIBAL_MAX_ZOOM} " cmd += f"--output={tribal_tiles_path}/usa.mbtiles " cmd += str(tribal_geojson_dir / "usa.json") call(cmd, shell=True) @@ -92,6 +97,7 @@ def _generate_tribal_tiles() -> None: cmd = "tippecanoe " cmd += "--no-tile-compression " cmd += "--drop-densest-as-needed " + cmd += f"--minimum-zoom={USA_TRIBAL_MIN_ZOOM} --maximum-zoom={USA_TRIBAL_MAX_ZOOM} " cmd += f"--output-to-directory={tribal_tiles_path} --layer=blocks " cmd += str(tribal_geojson_dir / "usa.json") call(cmd, shell=True) diff --git a/data/data-pipeline/data_pipeline/utils.py b/data/data-pipeline/data_pipeline/utils.py index 5fcf8f42d..0ec626165 100644 --- a/data/data-pipeline/data_pipeline/utils.py +++ b/data/data-pipeline/data_pipeline/utils.py @@ -8,6 +8,7 @@ import uuid import zipfile from pathlib import Path +from marshmallow import ValidationError import urllib3 import requests import yaml @@ -350,7 +351,13 @@ def load_yaml_dict_from_file( # validate YAML yaml_config_schema = class_schema(schema_class) - yaml_config_schema().load(yaml_dict) + + try: + yaml_config_schema().load(yaml_dict) + except ValidationError as e: + logger.error(f"Invalid YAML config file {yaml_file_path}") + logger.error(e.normalized_messages()) + sys.exit() return yaml_dict diff --git a/mlc_config.json b/mlc_config.json index 09a538ae5..95195c9f3 100644 --- a/mlc_config.json +++ b/mlc_config.json @@ -1,4 +1,5 @@ { + "_comment": "Markdown Link Checker configuration, see https://github.com/gaurav-nelson/github-action-markdown-link-check and https://github.com/tcort/markdown-link-check", "ignorePatterns": [ { "pattern": "^http://localhost" diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 1c7bb548c..000000000 --- a/package-lock.json +++ /dev/null @@ -1,3415 +0,0 @@ -{ - "name": "j40_map", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "dependencies": { - "@turf/turf": "^6.5.0", - "@types/d3-ease": "^3.0.0", - "d3-ease": "^3.0.1" - } - }, - "node_modules/@turf/along": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/along/-/along-6.5.0.tgz", - "integrity": "sha512-LLyWQ0AARqJCmMcIEAXF4GEu8usmd4Kbz3qk1Oy5HoRNpZX47+i5exQtmIWKdqJ1MMhW26fCTXgpsEs5zgJ5gw==", - "dependencies": { - "@turf/bearing": "^6.5.0", - "@turf/destination": "^6.5.0", - "@turf/distance": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/angle": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/angle/-/angle-6.5.0.tgz", - "integrity": "sha512-4pXMbWhFofJJAOvTMCns6N4C8CMd5Ih4O2jSAG9b3dDHakj3O4yN1+Zbm+NUei+eVEZ9gFeVp9svE3aMDenIkw==", - "dependencies": { - "@turf/bearing": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/rhumb-bearing": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/area": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/area/-/area-6.5.0.tgz", - "integrity": "sha512-xCZdiuojokLbQ+29qR6qoMD89hv+JAgWjLrwSEWL+3JV8IXKeNFl6XkEJz9HGkVpnXvQKJoRz4/liT+8ZZ5Jyg==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/bbox": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-6.5.0.tgz", - "integrity": "sha512-RBbLaao5hXTYyyg577iuMtDB8ehxMlUqHEJiMs8jT1GHkFhr6sYre3lmLsPeYEi/ZKj5TP5tt7fkzNdJ4GIVyw==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/bbox-clip": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/bbox-clip/-/bbox-clip-6.5.0.tgz", - "integrity": "sha512-F6PaIRF8WMp8EmgU/Ke5B1Y6/pia14UAYB5TiBC668w5rVVjy5L8rTm/m2lEkkDMHlzoP9vNY4pxpNthE7rLcQ==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/bbox-polygon": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/bbox-polygon/-/bbox-polygon-6.5.0.tgz", - "integrity": "sha512-+/r0NyL1lOG3zKZmmf6L8ommU07HliP4dgYToMoTxqzsWzyLjaj/OzgQ8rBmv703WJX+aS6yCmLuIhYqyufyuw==", - "dependencies": { - "@turf/helpers": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/bearing": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/bearing/-/bearing-6.5.0.tgz", - "integrity": "sha512-dxINYhIEMzgDOztyMZc20I7ssYVNEpSv04VbMo5YPQsqa80KO3TFvbuCahMsCAW5z8Tncc8dwBlEFrmRjJG33A==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/bezier-spline": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/bezier-spline/-/bezier-spline-6.5.0.tgz", - "integrity": "sha512-vokPaurTd4PF96rRgGVm6zYYC5r1u98ZsG+wZEv9y3kJTuJRX/O3xIY2QnTGTdbVmAJN1ouOsD0RoZYaVoXORQ==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/boolean-clockwise": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-clockwise/-/boolean-clockwise-6.5.0.tgz", - "integrity": "sha512-45+C7LC5RMbRWrxh3Z0Eihsc8db1VGBO5d9BLTOAwU4jR6SgsunTfRWR16X7JUwIDYlCVEmnjcXJNi/kIU3VIw==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/boolean-contains": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-contains/-/boolean-contains-6.5.0.tgz", - "integrity": "sha512-4m8cJpbw+YQcKVGi8y0cHhBUnYT+QRfx6wzM4GI1IdtYH3p4oh/DOBJKrepQyiDzFDaNIjxuWXBh0ai1zVwOQQ==", - "dependencies": { - "@turf/bbox": "^6.5.0", - "@turf/boolean-point-in-polygon": "^6.5.0", - "@turf/boolean-point-on-line": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/boolean-crosses": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-crosses/-/boolean-crosses-6.5.0.tgz", - "integrity": "sha512-gvshbTPhAHporTlQwBJqyfW+2yV8q/mOTxG6PzRVl6ARsqNoqYQWkd4MLug7OmAqVyBzLK3201uAeBjxbGw0Ng==", - "dependencies": { - "@turf/boolean-point-in-polygon": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/line-intersect": "^6.5.0", - "@turf/polygon-to-line": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/boolean-disjoint": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-disjoint/-/boolean-disjoint-6.5.0.tgz", - "integrity": "sha512-rZ2ozlrRLIAGo2bjQ/ZUu4oZ/+ZjGvLkN5CKXSKBcu6xFO6k2bgqeM8a1836tAW+Pqp/ZFsTA5fZHsJZvP2D5g==", - "dependencies": { - "@turf/boolean-point-in-polygon": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/line-intersect": "^6.5.0", - "@turf/meta": "^6.5.0", - "@turf/polygon-to-line": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/boolean-equal": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-equal/-/boolean-equal-6.5.0.tgz", - "integrity": "sha512-cY0M3yoLC26mhAnjv1gyYNQjn7wxIXmL2hBmI/qs8g5uKuC2hRWi13ydufE3k4x0aNRjFGlg41fjoYLwaVF+9Q==", - "dependencies": { - "@turf/clean-coords": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "geojson-equality": "0.1.6" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/boolean-intersects": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-intersects/-/boolean-intersects-6.5.0.tgz", - "integrity": "sha512-nIxkizjRdjKCYFQMnml6cjPsDOBCThrt+nkqtSEcxkKMhAQj5OO7o2CecioNTaX8EayqwMGVKcsz27oP4mKPTw==", - "dependencies": { - "@turf/boolean-disjoint": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/boolean-overlap": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-overlap/-/boolean-overlap-6.5.0.tgz", - "integrity": "sha512-8btMIdnbXVWUa1M7D4shyaSGxLRw6NjMcqKBcsTXcZdnaixl22k7ar7BvIzkaRYN3SFECk9VGXfLncNS3ckQUw==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/line-intersect": "^6.5.0", - "@turf/line-overlap": "^6.5.0", - "@turf/meta": "^6.5.0", - "geojson-equality": "0.1.6" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/boolean-parallel": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-parallel/-/boolean-parallel-6.5.0.tgz", - "integrity": "sha512-aSHJsr1nq9e5TthZGZ9CZYeXklJyRgR5kCLm5X4urz7+MotMOp/LsGOsvKvK9NeUl9+8OUmfMn8EFTT8LkcvIQ==", - "dependencies": { - "@turf/clean-coords": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/line-segment": "^6.5.0", - "@turf/rhumb-bearing": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/boolean-point-in-polygon": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-6.5.0.tgz", - "integrity": "sha512-DtSuVFB26SI+hj0SjrvXowGTUCHlgevPAIsukssW6BG5MlNSBQAo70wpICBNJL6RjukXg8d2eXaAWuD/CqL00A==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/boolean-point-on-line": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-point-on-line/-/boolean-point-on-line-6.5.0.tgz", - "integrity": "sha512-A1BbuQ0LceLHvq7F/P7w3QvfpmZqbmViIUPHdNLvZimFNLo4e6IQunmzbe+8aSStH9QRZm3VOflyvNeXvvpZEQ==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/boolean-within": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-within/-/boolean-within-6.5.0.tgz", - "integrity": "sha512-YQB3oU18Inx35C/LU930D36RAVe7LDXk1kWsQ8mLmuqYn9YdPsDQTMTkLJMhoQ8EbN7QTdy333xRQ4MYgToteQ==", - "dependencies": { - "@turf/bbox": "^6.5.0", - "@turf/boolean-point-in-polygon": "^6.5.0", - "@turf/boolean-point-on-line": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/buffer": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/buffer/-/buffer-6.5.0.tgz", - "integrity": "sha512-qeX4N6+PPWbKqp1AVkBVWFerGjMYMUyencwfnkCesoznU6qvfugFHNAngNqIBVnJjZ5n8IFyOf+akcxnrt9sNg==", - "dependencies": { - "@turf/bbox": "^6.5.0", - "@turf/center": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0", - "@turf/projection": "^6.5.0", - "d3-geo": "1.7.1", - "turf-jsts": "*" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/center": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/center/-/center-6.5.0.tgz", - "integrity": "sha512-T8KtMTfSATWcAX088rEDKjyvQCBkUsLnK/Txb6/8WUXIeOZyHu42G7MkdkHRoHtwieLdduDdmPLFyTdG5/e7ZQ==", - "dependencies": { - "@turf/bbox": "^6.5.0", - "@turf/helpers": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/center-mean": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/center-mean/-/center-mean-6.5.0.tgz", - "integrity": "sha512-AAX6f4bVn12pTVrMUiB9KrnV94BgeBKpyg3YpfnEbBpkN/znfVhL8dG8IxMAxAoSZ61Zt9WLY34HfENveuOZ7Q==", - "dependencies": { - "@turf/bbox": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/center-median": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/center-median/-/center-median-6.5.0.tgz", - "integrity": "sha512-dT8Ndu5CiZkPrj15PBvslpuf01ky41DEYEPxS01LOxp5HOUHXp1oJxsPxvc+i/wK4BwccPNzU1vzJ0S4emd1KQ==", - "dependencies": { - "@turf/center-mean": "^6.5.0", - "@turf/centroid": "^6.5.0", - "@turf/distance": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/center-of-mass": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/center-of-mass/-/center-of-mass-6.5.0.tgz", - "integrity": "sha512-EWrriU6LraOfPN7m1jZi+1NLTKNkuIsGLZc2+Y8zbGruvUW+QV7K0nhf7iZWutlxHXTBqEXHbKue/o79IumAsQ==", - "dependencies": { - "@turf/centroid": "^6.5.0", - "@turf/convex": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/meta": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/centroid": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/centroid/-/centroid-6.5.0.tgz", - "integrity": "sha512-MwE1oq5E3isewPprEClbfU5pXljIK/GUOMbn22UM3IFPDJX0KeoyLNwghszkdmFp/qMGL/M13MMWvU+GNLXP/A==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/circle": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/circle/-/circle-6.5.0.tgz", - "integrity": "sha512-oU1+Kq9DgRnoSbWFHKnnUdTmtcRUMmHoV9DjTXu9vOLNV5OWtAAh1VZ+mzsioGGzoDNT/V5igbFOkMfBQc0B6A==", - "dependencies": { - "@turf/destination": "^6.5.0", - "@turf/helpers": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/clean-coords": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/clean-coords/-/clean-coords-6.5.0.tgz", - "integrity": "sha512-EMX7gyZz0WTH/ET7xV8MyrExywfm9qUi0/MY89yNffzGIEHuFfqwhcCqZ8O00rZIPZHUTxpmsxQSTfzJJA1CPw==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/clone": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/clone/-/clone-6.5.0.tgz", - "integrity": "sha512-mzVtTFj/QycXOn6ig+annKrM6ZlimreKYz6f/GSERytOpgzodbQyOgkfwru100O1KQhhjSudKK4DsQ0oyi9cTw==", - "dependencies": { - "@turf/helpers": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/clusters": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/clusters/-/clusters-6.5.0.tgz", - "integrity": "sha512-Y6gfnTJzQ1hdLfCsyd5zApNbfLIxYEpmDibHUqR5z03Lpe02pa78JtgrgUNt1seeO/aJ4TG1NLN8V5gOrHk04g==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/clusters-dbscan": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/clusters-dbscan/-/clusters-dbscan-6.5.0.tgz", - "integrity": "sha512-SxZEE4kADU9DqLRiT53QZBBhu8EP9skviSyl+FGj08Y01xfICM/RR9ACUdM0aEQimhpu+ZpRVcUK+2jtiCGrYQ==", - "dependencies": { - "@turf/clone": "^6.5.0", - "@turf/distance": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0", - "density-clustering": "1.3.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/clusters-kmeans": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/clusters-kmeans/-/clusters-kmeans-6.5.0.tgz", - "integrity": "sha512-DwacD5+YO8kwDPKaXwT9DV46tMBVNsbi1IzdajZu1JDSWoN7yc7N9Qt88oi+p30583O0UPVkAK+A10WAQv4mUw==", - "dependencies": { - "@turf/clone": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/meta": "^6.5.0", - "skmeans": "0.9.7" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/collect": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/collect/-/collect-6.5.0.tgz", - "integrity": "sha512-4dN/T6LNnRg099m97BJeOcTA5fSI8cu87Ydgfibewd2KQwBexO69AnjEFqfPX3Wj+Zvisj1uAVIZbPmSSrZkjg==", - "dependencies": { - "@turf/bbox": "^6.5.0", - "@turf/boolean-point-in-polygon": "^6.5.0", - "@turf/helpers": "^6.5.0", - "rbush": "2.x" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/combine": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/combine/-/combine-6.5.0.tgz", - "integrity": "sha512-Q8EIC4OtAcHiJB3C4R+FpB4LANiT90t17uOd851qkM2/o6m39bfN5Mv0PWqMZIHWrrosZqRqoY9dJnzz/rJxYQ==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/concave": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/concave/-/concave-6.5.0.tgz", - "integrity": "sha512-I/sUmUC8TC5h/E2vPwxVht+nRt+TnXIPRoztDFvS8/Y0+cBDple9inLSo9nnPXMXidrBlGXZ9vQx/BjZUJgsRQ==", - "dependencies": { - "@turf/clone": "^6.5.0", - "@turf/distance": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/meta": "^6.5.0", - "@turf/tin": "^6.5.0", - "topojson-client": "3.x", - "topojson-server": "3.x" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/convex": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/convex/-/convex-6.5.0.tgz", - "integrity": "sha512-x7ZwC5z7PJB0SBwNh7JCeCNx7Iu+QSrH7fYgK0RhhNop13TqUlvHMirMLRgf2db1DqUetrAO2qHJeIuasquUWg==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0", - "concaveman": "*" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/destination": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/destination/-/destination-6.5.0.tgz", - "integrity": "sha512-4cnWQlNC8d1tItOz9B4pmJdWpXqS0vEvv65bI/Pj/genJnsL7evI0/Xw42RvEGROS481MPiU80xzvwxEvhQiMQ==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/difference": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.5.0.tgz", - "integrity": "sha512-l8iR5uJqvI+5Fs6leNbhPY5t/a3vipUF/3AeVLpwPQcgmedNXyheYuy07PcMGH5Jdpi5gItOiTqwiU/bUH4b3A==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "polygon-clipping": "^0.15.3" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/dissolve": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/dissolve/-/dissolve-6.5.0.tgz", - "integrity": "sha512-WBVbpm9zLTp0Bl9CE35NomTaOL1c4TQCtEoO43YaAhNEWJOOIhZMFJyr8mbvYruKl817KinT3x7aYjjCMjTAsQ==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/meta": "^6.5.0", - "polygon-clipping": "^0.15.3" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/distance": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/distance/-/distance-6.5.0.tgz", - "integrity": "sha512-xzykSLfoURec5qvQJcfifw/1mJa+5UwByZZ5TZ8iaqjGYN0vomhV9aiSLeYdUGtYRESZ+DYC/OzY+4RclZYgMg==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/distance-weight": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/distance-weight/-/distance-weight-6.5.0.tgz", - "integrity": "sha512-a8qBKkgVNvPKBfZfEJZnC3DV7dfIsC3UIdpRci/iap/wZLH41EmS90nM+BokAJflUHYy8PqE44wySGWHN1FXrQ==", - "dependencies": { - "@turf/centroid": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/meta": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/ellipse": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/ellipse/-/ellipse-6.5.0.tgz", - "integrity": "sha512-kuXtwFviw/JqnyJXF1mrR/cb496zDTSbGKtSiolWMNImYzGGkbsAsFTjwJYgD7+4FixHjp0uQPzo70KDf3AIBw==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/rhumb-destination": "^6.5.0", - "@turf/transform-rotate": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/envelope": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/envelope/-/envelope-6.5.0.tgz", - "integrity": "sha512-9Z+FnBWvOGOU4X+fMZxYFs1HjFlkKqsddLuMknRaqcJd6t+NIv5DWvPtDL8ATD2GEExYDiFLwMdckfr1yqJgHA==", - "dependencies": { - "@turf/bbox": "^6.5.0", - "@turf/bbox-polygon": "^6.5.0", - "@turf/helpers": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/explode": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/explode/-/explode-6.5.0.tgz", - "integrity": "sha512-6cSvMrnHm2qAsace6pw9cDmK2buAlw8+tjeJVXMfMyY+w7ZUi1rprWMsY92J7s2Dar63Bv09n56/1V7+tcj52Q==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/flatten": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/flatten/-/flatten-6.5.0.tgz", - "integrity": "sha512-IBZVwoNLVNT6U/bcUUllubgElzpMsNoCw8tLqBw6dfYg9ObGmpEjf9BIYLr7a2Yn5ZR4l7YIj2T7kD5uJjZADQ==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/flip": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/flip/-/flip-6.5.0.tgz", - "integrity": "sha512-oyikJFNjt2LmIXQqgOGLvt70RgE2lyzPMloYWM7OR5oIFGRiBvqVD2hA6MNw6JewIm30fWZ8DQJw1NHXJTJPbg==", - "dependencies": { - "@turf/clone": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/great-circle": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/great-circle/-/great-circle-6.5.0.tgz", - "integrity": "sha512-7ovyi3HaKOXdFyN7yy1yOMa8IyOvV46RC1QOQTT+RYUN8ke10eyqExwBpL9RFUPvlpoTzoYbM/+lWPogQlFncg==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/helpers": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.5.0.tgz", - "integrity": "sha512-VbI1dV5bLFzohYYdgqwikdMVpe7pJ9X3E+dlr425wa2/sMJqYDhTO++ec38/pcPvPE6oD9WEEeU3Xu3gza+VPw==", - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/hex-grid": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/hex-grid/-/hex-grid-6.5.0.tgz", - "integrity": "sha512-Ln3tc2tgZT8etDOldgc6e741Smg1CsMKAz1/Mlel+MEL5Ynv2mhx3m0q4J9IB1F3a4MNjDeVvm8drAaf9SF33g==", - "dependencies": { - "@turf/distance": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/intersect": "^6.5.0", - "@turf/invariant": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/interpolate": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/interpolate/-/interpolate-6.5.0.tgz", - "integrity": "sha512-LSH5fMeiGyuDZ4WrDJNgh81d2DnNDUVJtuFryJFup8PV8jbs46lQGfI3r1DJ2p1IlEJIz3pmAZYeTfMMoeeohw==", - "dependencies": { - "@turf/bbox": "^6.5.0", - "@turf/centroid": "^6.5.0", - "@turf/clone": "^6.5.0", - "@turf/distance": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/hex-grid": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/meta": "^6.5.0", - "@turf/point-grid": "^6.5.0", - "@turf/square-grid": "^6.5.0", - "@turf/triangle-grid": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/intersect": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.5.0.tgz", - "integrity": "sha512-2legGJeKrfFkzntcd4GouPugoqPUjexPZnOvfez+3SfIMrHvulw8qV8u7pfVyn2Yqs53yoVCEjS5sEpvQ5YRQg==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "polygon-clipping": "^0.15.3" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/invariant": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.5.0.tgz", - "integrity": "sha512-Wv8PRNCtPD31UVbdJE/KVAWKe7l6US+lJItRR/HOEW3eh+U/JwRCSUl/KZ7bmjM/C+zLNoreM2TU6OoLACs4eg==", - "dependencies": { - "@turf/helpers": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/isobands": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/isobands/-/isobands-6.5.0.tgz", - "integrity": "sha512-4h6sjBPhRwMVuFaVBv70YB7eGz+iw0bhPRnp+8JBdX1UPJSXhoi/ZF2rACemRUr0HkdVB/a1r9gC32vn5IAEkw==", - "dependencies": { - "@turf/area": "^6.5.0", - "@turf/bbox": "^6.5.0", - "@turf/boolean-point-in-polygon": "^6.5.0", - "@turf/explode": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/meta": "^6.5.0", - "object-assign": "*" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/isolines": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/isolines/-/isolines-6.5.0.tgz", - "integrity": "sha512-6ElhiLCopxWlv4tPoxiCzASWt/jMRvmp6mRYrpzOm3EUl75OhHKa/Pu6Y9nWtCMmVC/RcWtiiweUocbPLZLm0A==", - "dependencies": { - "@turf/bbox": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/meta": "^6.5.0", - "object-assign": "*" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/kinks": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.5.0.tgz", - "integrity": "sha512-ViCngdPt1eEL7hYUHR2eHR662GvCgTc35ZJFaNR6kRtr6D8plLaDju0FILeFFWSc+o8e3fwxZEJKmFj9IzPiIQ==", - "dependencies": { - "@turf/helpers": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/length": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/length/-/length-6.5.0.tgz", - "integrity": "sha512-5pL5/pnw52fck3oRsHDcSGrj9HibvtlrZ0QNy2OcW8qBFDNgZ4jtl6U7eATVoyWPKBHszW3dWETW+iLV7UARig==", - "dependencies": { - "@turf/distance": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/line-arc": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/line-arc/-/line-arc-6.5.0.tgz", - "integrity": "sha512-I6c+V6mIyEwbtg9P9zSFF89T7QPe1DPTG3MJJ6Cm1MrAY0MdejwQKOpsvNl8LDU2ekHOlz2kHpPVR7VJsoMllA==", - "dependencies": { - "@turf/circle": "^6.5.0", - "@turf/destination": "^6.5.0", - "@turf/helpers": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/line-chunk": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/line-chunk/-/line-chunk-6.5.0.tgz", - "integrity": "sha512-i1FGE6YJaaYa+IJesTfyRRQZP31QouS+wh/pa6O3CC0q4T7LtHigyBSYjrbjSLfn2EVPYGlPCMFEqNWCOkC6zg==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/length": "^6.5.0", - "@turf/line-slice-along": "^6.5.0", - "@turf/meta": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/line-intersect": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/line-intersect/-/line-intersect-6.5.0.tgz", - "integrity": "sha512-CS6R1tZvVQD390G9Ea4pmpM6mJGPWoL82jD46y0q1KSor9s6HupMIo1kY4Ny+AEYQl9jd21V3Scz20eldpbTVA==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/line-segment": "^6.5.0", - "@turf/meta": "^6.5.0", - "geojson-rbush": "3.x" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/line-offset": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/line-offset/-/line-offset-6.5.0.tgz", - "integrity": "sha512-CEXZbKgyz8r72qRvPchK0dxqsq8IQBdH275FE6o4MrBkzMcoZsfSjghtXzKaz9vvro+HfIXal0sTk2mqV1lQTw==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/meta": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/line-overlap": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/line-overlap/-/line-overlap-6.5.0.tgz", - "integrity": "sha512-xHOaWLd0hkaC/1OLcStCpfq55lPHpPNadZySDXYiYjEz5HXr1oKmtMYpn0wGizsLwrOixRdEp+j7bL8dPt4ojQ==", - "dependencies": { - "@turf/boolean-point-on-line": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/line-segment": "^6.5.0", - "@turf/meta": "^6.5.0", - "@turf/nearest-point-on-line": "^6.5.0", - "deep-equal": "1.x", - "geojson-rbush": "3.x" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/line-segment": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/line-segment/-/line-segment-6.5.0.tgz", - "integrity": "sha512-jI625Ho4jSuJESNq66Mmi290ZJ5pPZiQZruPVpmHkUw257Pew0alMmb6YrqYNnLUuiVVONxAAKXUVeeUGtycfw==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/meta": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/line-slice": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/line-slice/-/line-slice-6.5.0.tgz", - "integrity": "sha512-vDqJxve9tBHhOaVVFXqVjF5qDzGtKWviyjbyi2QnSnxyFAmLlLnBfMX8TLQCAf2GxHibB95RO5FBE6I2KVPRuw==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/nearest-point-on-line": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/line-slice-along": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/line-slice-along/-/line-slice-along-6.5.0.tgz", - "integrity": "sha512-KHJRU6KpHrAj+BTgTNqby6VCTnDzG6a1sJx/I3hNvqMBLvWVA2IrkR9L9DtsQsVY63IBwVdQDqiwCuZLDQh4Ng==", - "dependencies": { - "@turf/bearing": "^6.5.0", - "@turf/destination": "^6.5.0", - "@turf/distance": "^6.5.0", - "@turf/helpers": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/line-split": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/line-split/-/line-split-6.5.0.tgz", - "integrity": "sha512-/rwUMVr9OI2ccJjw7/6eTN53URtGThNSD5I0GgxyFXMtxWiloRJ9MTff8jBbtPWrRka/Sh2GkwucVRAEakx9Sw==", - "dependencies": { - "@turf/bbox": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/line-intersect": "^6.5.0", - "@turf/line-segment": "^6.5.0", - "@turf/meta": "^6.5.0", - "@turf/nearest-point-on-line": "^6.5.0", - "@turf/square": "^6.5.0", - "@turf/truncate": "^6.5.0", - "geojson-rbush": "3.x" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/line-to-polygon": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/line-to-polygon/-/line-to-polygon-6.5.0.tgz", - "integrity": "sha512-qYBuRCJJL8Gx27OwCD1TMijM/9XjRgXH/m/TyuND4OXedBpIWlK5VbTIO2gJ8OCfznBBddpjiObLBrkuxTpN4Q==", - "dependencies": { - "@turf/bbox": "^6.5.0", - "@turf/clone": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/mask": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/mask/-/mask-6.5.0.tgz", - "integrity": "sha512-RQha4aU8LpBrmrkH8CPaaoAfk0Egj5OuXtv6HuCQnHeGNOQt3TQVibTA3Sh4iduq4EPxnZfDjgsOeKtrCA19lg==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "polygon-clipping": "^0.15.3" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/meta": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-6.5.0.tgz", - "integrity": "sha512-RrArvtsV0vdsCBegoBtOalgdSOfkBrTJ07VkpiCnq/491W67hnMWmDu7e6Ztw0C3WldRYTXkg3SumfdzZxLBHA==", - "dependencies": { - "@turf/helpers": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/midpoint": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/midpoint/-/midpoint-6.5.0.tgz", - "integrity": "sha512-MyTzV44IwmVI6ec9fB2OgZ53JGNlgOpaYl9ArKoF49rXpL84F9rNATndbe0+MQIhdkw8IlzA6xVP4lZzfMNVCw==", - "dependencies": { - "@turf/bearing": "^6.5.0", - "@turf/destination": "^6.5.0", - "@turf/distance": "^6.5.0", - "@turf/helpers": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/moran-index": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/moran-index/-/moran-index-6.5.0.tgz", - "integrity": "sha512-ItsnhrU2XYtTtTudrM8so4afBCYWNaB0Mfy28NZwLjB5jWuAsvyV+YW+J88+neK/ougKMTawkmjQqodNJaBeLQ==", - "dependencies": { - "@turf/distance-weight": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/nearest-point": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/nearest-point/-/nearest-point-6.5.0.tgz", - "integrity": "sha512-fguV09QxilZv/p94s8SMsXILIAMiaXI5PATq9d7YWijLxWUj6Q/r43kxyoi78Zmwwh1Zfqz9w+bCYUAxZ5+euA==", - "dependencies": { - "@turf/clone": "^6.5.0", - "@turf/distance": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/nearest-point-on-line": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/nearest-point-on-line/-/nearest-point-on-line-6.5.0.tgz", - "integrity": "sha512-WthrvddddvmymnC+Vf7BrkHGbDOUu6Z3/6bFYUGv1kxw8tiZ6n83/VG6kHz4poHOfS0RaNflzXSkmCi64fLBlg==", - "dependencies": { - "@turf/bearing": "^6.5.0", - "@turf/destination": "^6.5.0", - "@turf/distance": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/line-intersect": "^6.5.0", - "@turf/meta": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/nearest-point-to-line": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/nearest-point-to-line/-/nearest-point-to-line-6.5.0.tgz", - "integrity": "sha512-PXV7cN0BVzUZdjj6oeb/ESnzXSfWmEMrsfZSDRgqyZ9ytdiIj/eRsnOXLR13LkTdXVOJYDBuf7xt1mLhM4p6+Q==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/meta": "^6.5.0", - "@turf/point-to-line-distance": "^6.5.0", - "object-assign": "*" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/planepoint": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/planepoint/-/planepoint-6.5.0.tgz", - "integrity": "sha512-R3AahA6DUvtFbka1kcJHqZ7DMHmPXDEQpbU5WaglNn7NaCQg9HB0XM0ZfqWcd5u92YXV+Gg8QhC8x5XojfcM4Q==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/point-grid": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/point-grid/-/point-grid-6.5.0.tgz", - "integrity": "sha512-Iq38lFokNNtQJnOj/RBKmyt6dlof0yhaHEDELaWHuECm1lIZLY3ZbVMwbs+nXkwTAHjKfS/OtMheUBkw+ee49w==", - "dependencies": { - "@turf/boolean-within": "^6.5.0", - "@turf/distance": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/point-on-feature": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/point-on-feature/-/point-on-feature-6.5.0.tgz", - "integrity": "sha512-bDpuIlvugJhfcF/0awAQ+QI6Om1Y1FFYE8Y/YdxGRongivix850dTeXCo0mDylFdWFPGDo7Mmh9Vo4VxNwW/TA==", - "dependencies": { - "@turf/boolean-point-in-polygon": "^6.5.0", - "@turf/center": "^6.5.0", - "@turf/explode": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/nearest-point": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/point-to-line-distance": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/point-to-line-distance/-/point-to-line-distance-6.5.0.tgz", - "integrity": "sha512-opHVQ4vjUhNBly1bob6RWy+F+hsZDH9SA0UW36pIRzfpu27qipU18xup0XXEePfY6+wvhF6yL/WgCO2IbrLqEA==", - "dependencies": { - "@turf/bearing": "^6.5.0", - "@turf/distance": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/meta": "^6.5.0", - "@turf/projection": "^6.5.0", - "@turf/rhumb-bearing": "^6.5.0", - "@turf/rhumb-distance": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/points-within-polygon": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/points-within-polygon/-/points-within-polygon-6.5.0.tgz", - "integrity": "sha512-YyuheKqjliDsBDt3Ho73QVZk1VXX1+zIA2gwWvuz8bR1HXOkcuwk/1J76HuFMOQI3WK78wyAi+xbkx268PkQzQ==", - "dependencies": { - "@turf/boolean-point-in-polygon": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/polygon-smooth": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/polygon-smooth/-/polygon-smooth-6.5.0.tgz", - "integrity": "sha512-LO/X/5hfh/Rk4EfkDBpLlVwt3i6IXdtQccDT9rMjXEP32tRgy0VMFmdkNaXoGlSSKf/1mGqLl4y4wHd86DqKbg==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/polygon-tangents": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/polygon-tangents/-/polygon-tangents-6.5.0.tgz", - "integrity": "sha512-sB4/IUqJMYRQH9jVBwqS/XDitkEfbyqRy+EH/cMRJURTg78eHunvJ708x5r6umXsbiUyQU4eqgPzEylWEQiunw==", - "dependencies": { - "@turf/bbox": "^6.5.0", - "@turf/boolean-within": "^6.5.0", - "@turf/explode": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/nearest-point": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/polygon-to-line": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/polygon-to-line/-/polygon-to-line-6.5.0.tgz", - "integrity": "sha512-5p4n/ij97EIttAq+ewSnKt0ruvuM+LIDzuczSzuHTpq4oS7Oq8yqg5TQ4nzMVuK41r/tALCk7nAoBuw3Su4Gcw==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/polygonize": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/polygonize/-/polygonize-6.5.0.tgz", - "integrity": "sha512-a/3GzHRaCyzg7tVYHo43QUChCspa99oK4yPqooVIwTC61npFzdrmnywMv0S+WZjHZwK37BrFJGFrZGf6ocmY5w==", - "dependencies": { - "@turf/boolean-point-in-polygon": "^6.5.0", - "@turf/envelope": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/meta": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/projection": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/projection/-/projection-6.5.0.tgz", - "integrity": "sha512-/Pgh9mDvQWWu8HRxqpM+tKz8OzgauV+DiOcr3FCjD6ubDnrrmMJlsf6fFJmggw93mtVPrZRL6yyi9aYCQBOIvg==", - "dependencies": { - "@turf/clone": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/random": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/random/-/random-6.5.0.tgz", - "integrity": "sha512-8Q25gQ/XbA7HJAe+eXp4UhcXM9aOOJFaxZ02+XSNwMvY8gtWSCBLVqRcW4OhqilgZ8PeuQDWgBxeo+BIqqFWFQ==", - "dependencies": { - "@turf/helpers": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/rectangle-grid": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/rectangle-grid/-/rectangle-grid-6.5.0.tgz", - "integrity": "sha512-yQZ/1vbW68O2KsSB3OZYK+72aWz/Adnf7m2CMKcC+aq6TwjxZjAvlbCOsNUnMAuldRUVN1ph6RXMG4e9KEvKvg==", - "dependencies": { - "@turf/boolean-intersects": "^6.5.0", - "@turf/distance": "^6.5.0", - "@turf/helpers": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/rewind": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/rewind/-/rewind-6.5.0.tgz", - "integrity": "sha512-IoUAMcHWotBWYwSYuYypw/LlqZmO+wcBpn8ysrBNbazkFNkLf3btSDZMkKJO/bvOzl55imr/Xj4fi3DdsLsbzQ==", - "dependencies": { - "@turf/boolean-clockwise": "^6.5.0", - "@turf/clone": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/meta": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/rhumb-bearing": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/rhumb-bearing/-/rhumb-bearing-6.5.0.tgz", - "integrity": "sha512-jMyqiMRK4hzREjQmnLXmkJ+VTNTx1ii8vuqRwJPcTlKbNWfjDz/5JqJlb5NaFDcdMpftWovkW5GevfnuzHnOYA==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/rhumb-destination": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/rhumb-destination/-/rhumb-destination-6.5.0.tgz", - "integrity": "sha512-RHNP1Oy+7xTTdRrTt375jOZeHceFbjwohPHlr9Hf68VdHHPMAWgAKqiX2YgSWDcvECVmiGaBKWus1Df+N7eE4Q==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/rhumb-distance": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/rhumb-distance/-/rhumb-distance-6.5.0.tgz", - "integrity": "sha512-oKp8KFE8E4huC2Z1a1KNcFwjVOqa99isxNOwfo4g3SUABQ6NezjKDDrnvC4yI5YZ3/huDjULLBvhed45xdCrzg==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/sample": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/sample/-/sample-6.5.0.tgz", - "integrity": "sha512-kSdCwY7el15xQjnXYW520heKUrHwRvnzx8ka4eYxX9NFeOxaFITLW2G7UtXb6LJK8mmPXI8Aexv23F2ERqzGFg==", - "dependencies": { - "@turf/helpers": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/sector": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/sector/-/sector-6.5.0.tgz", - "integrity": "sha512-cYUOkgCTWqa23SOJBqxoFAc/yGCUsPRdn/ovbRTn1zNTm/Spmk6hVB84LCKOgHqvSF25i0d2kWqpZDzLDdAPbw==", - "dependencies": { - "@turf/circle": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/line-arc": "^6.5.0", - "@turf/meta": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/shortest-path": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/shortest-path/-/shortest-path-6.5.0.tgz", - "integrity": "sha512-4de5+G7+P4hgSoPwn+SO9QSi9HY5NEV/xRJ+cmoFVRwv2CDsuOPDheHKeuIAhKyeKDvPvPt04XYWbac4insJMg==", - "dependencies": { - "@turf/bbox": "^6.5.0", - "@turf/bbox-polygon": "^6.5.0", - "@turf/boolean-point-in-polygon": "^6.5.0", - "@turf/clean-coords": "^6.5.0", - "@turf/distance": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/meta": "^6.5.0", - "@turf/transform-scale": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/simplify": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/simplify/-/simplify-6.5.0.tgz", - "integrity": "sha512-USas3QqffPHUY184dwQdP8qsvcVH/PWBYdXY5am7YTBACaQOMAlf6AKJs9FT8jiO6fQpxfgxuEtwmox+pBtlOg==", - "dependencies": { - "@turf/clean-coords": "^6.5.0", - "@turf/clone": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/square": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/square/-/square-6.5.0.tgz", - "integrity": "sha512-BM2UyWDmiuHCadVhHXKIx5CQQbNCpOxB6S/aCNOCLbhCeypKX5Q0Aosc5YcmCJgkwO5BERCC6Ee7NMbNB2vHmQ==", - "dependencies": { - "@turf/distance": "^6.5.0", - "@turf/helpers": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/square-grid": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/square-grid/-/square-grid-6.5.0.tgz", - "integrity": "sha512-mlR0ayUdA+L4c9h7p4k3pX6gPWHNGuZkt2c5II1TJRmhLkW2557d6b/Vjfd1z9OVaajb1HinIs1FMSAPXuuUrA==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/rectangle-grid": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/standard-deviational-ellipse": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/standard-deviational-ellipse/-/standard-deviational-ellipse-6.5.0.tgz", - "integrity": "sha512-02CAlz8POvGPFK2BKK8uHGUk/LXb0MK459JVjKxLC2yJYieOBTqEbjP0qaWhiBhGzIxSMaqe8WxZ0KvqdnstHA==", - "dependencies": { - "@turf/center-mean": "^6.5.0", - "@turf/ellipse": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/meta": "^6.5.0", - "@turf/points-within-polygon": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/tag": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/tag/-/tag-6.5.0.tgz", - "integrity": "sha512-XwlBvrOV38CQsrNfrxvBaAPBQgXMljeU0DV8ExOyGM7/hvuGHJw3y8kKnQ4lmEQcmcrycjDQhP7JqoRv8vFssg==", - "dependencies": { - "@turf/boolean-point-in-polygon": "^6.5.0", - "@turf/clone": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/tesselate": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/tesselate/-/tesselate-6.5.0.tgz", - "integrity": "sha512-M1HXuyZFCfEIIKkglh/r5L9H3c5QTEsnMBoZOFQiRnGPGmJWcaBissGb7mTFX2+DKE7FNWXh4TDnZlaLABB0dQ==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "earcut": "^2.0.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/tin": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/tin/-/tin-6.5.0.tgz", - "integrity": "sha512-YLYikRzKisfwj7+F+Tmyy/LE3d2H7D4kajajIfc9mlik2+esG7IolsX/+oUz1biguDYsG0DUA8kVYXDkobukfg==", - "dependencies": { - "@turf/helpers": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/transform-rotate": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/transform-rotate/-/transform-rotate-6.5.0.tgz", - "integrity": "sha512-A2Ip1v4246ZmpssxpcL0hhiVBEf4L8lGnSPWTgSv5bWBEoya2fa/0SnFX9xJgP40rMP+ZzRaCN37vLHbv1Guag==", - "dependencies": { - "@turf/centroid": "^6.5.0", - "@turf/clone": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/meta": "^6.5.0", - "@turf/rhumb-bearing": "^6.5.0", - "@turf/rhumb-destination": "^6.5.0", - "@turf/rhumb-distance": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/transform-scale": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/transform-scale/-/transform-scale-6.5.0.tgz", - "integrity": "sha512-VsATGXC9rYM8qTjbQJ/P7BswKWXHdnSJ35JlV4OsZyHBMxJQHftvmZJsFbOqVtQnIQIzf2OAly6rfzVV9QLr7g==", - "dependencies": { - "@turf/bbox": "^6.5.0", - "@turf/center": "^6.5.0", - "@turf/centroid": "^6.5.0", - "@turf/clone": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/meta": "^6.5.0", - "@turf/rhumb-bearing": "^6.5.0", - "@turf/rhumb-destination": "^6.5.0", - "@turf/rhumb-distance": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/transform-translate": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/transform-translate/-/transform-translate-6.5.0.tgz", - "integrity": "sha512-NABLw5VdtJt/9vSstChp93pc6oel4qXEos56RBMsPlYB8hzNTEKYtC146XJvyF4twJeeYS8RVe1u7KhoFwEM5w==", - "dependencies": { - "@turf/clone": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/meta": "^6.5.0", - "@turf/rhumb-destination": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/triangle-grid": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/triangle-grid/-/triangle-grid-6.5.0.tgz", - "integrity": "sha512-2jToUSAS1R1htq4TyLQYPTIsoy6wg3e3BQXjm2rANzw4wPQCXGOxrur1Fy9RtzwqwljlC7DF4tg0OnWr8RjmfA==", - "dependencies": { - "@turf/distance": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/intersect": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/truncate": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/truncate/-/truncate-6.5.0.tgz", - "integrity": "sha512-pFxg71pLk+eJj134Z9yUoRhIi8vqnnKvCYwdT4x/DQl/19RVdq1tV3yqOT3gcTQNfniteylL5qV1uTBDV5sgrg==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/turf": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/turf/-/turf-6.5.0.tgz", - "integrity": "sha512-ipMCPnhu59bh92MNt8+pr1VZQhHVuTMHklciQURo54heoxRzt1neNYZOBR6jdL+hNsbDGAECMuIpAutX+a3Y+w==", - "dependencies": { - "@turf/along": "^6.5.0", - "@turf/angle": "^6.5.0", - "@turf/area": "^6.5.0", - "@turf/bbox": "^6.5.0", - "@turf/bbox-clip": "^6.5.0", - "@turf/bbox-polygon": "^6.5.0", - "@turf/bearing": "^6.5.0", - "@turf/bezier-spline": "^6.5.0", - "@turf/boolean-clockwise": "^6.5.0", - "@turf/boolean-contains": "^6.5.0", - "@turf/boolean-crosses": "^6.5.0", - "@turf/boolean-disjoint": "^6.5.0", - "@turf/boolean-equal": "^6.5.0", - "@turf/boolean-intersects": "^6.5.0", - "@turf/boolean-overlap": "^6.5.0", - "@turf/boolean-parallel": "^6.5.0", - "@turf/boolean-point-in-polygon": "^6.5.0", - "@turf/boolean-point-on-line": "^6.5.0", - "@turf/boolean-within": "^6.5.0", - "@turf/buffer": "^6.5.0", - "@turf/center": "^6.5.0", - "@turf/center-mean": "^6.5.0", - "@turf/center-median": "^6.5.0", - "@turf/center-of-mass": "^6.5.0", - "@turf/centroid": "^6.5.0", - "@turf/circle": "^6.5.0", - "@turf/clean-coords": "^6.5.0", - "@turf/clone": "^6.5.0", - "@turf/clusters": "^6.5.0", - "@turf/clusters-dbscan": "^6.5.0", - "@turf/clusters-kmeans": "^6.5.0", - "@turf/collect": "^6.5.0", - "@turf/combine": "^6.5.0", - "@turf/concave": "^6.5.0", - "@turf/convex": "^6.5.0", - "@turf/destination": "^6.5.0", - "@turf/difference": "^6.5.0", - "@turf/dissolve": "^6.5.0", - "@turf/distance": "^6.5.0", - "@turf/distance-weight": "^6.5.0", - "@turf/ellipse": "^6.5.0", - "@turf/envelope": "^6.5.0", - "@turf/explode": "^6.5.0", - "@turf/flatten": "^6.5.0", - "@turf/flip": "^6.5.0", - "@turf/great-circle": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/hex-grid": "^6.5.0", - "@turf/interpolate": "^6.5.0", - "@turf/intersect": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/isobands": "^6.5.0", - "@turf/isolines": "^6.5.0", - "@turf/kinks": "^6.5.0", - "@turf/length": "^6.5.0", - "@turf/line-arc": "^6.5.0", - "@turf/line-chunk": "^6.5.0", - "@turf/line-intersect": "^6.5.0", - "@turf/line-offset": "^6.5.0", - "@turf/line-overlap": "^6.5.0", - "@turf/line-segment": "^6.5.0", - "@turf/line-slice": "^6.5.0", - "@turf/line-slice-along": "^6.5.0", - "@turf/line-split": "^6.5.0", - "@turf/line-to-polygon": "^6.5.0", - "@turf/mask": "^6.5.0", - "@turf/meta": "^6.5.0", - "@turf/midpoint": "^6.5.0", - "@turf/moran-index": "^6.5.0", - "@turf/nearest-point": "^6.5.0", - "@turf/nearest-point-on-line": "^6.5.0", - "@turf/nearest-point-to-line": "^6.5.0", - "@turf/planepoint": "^6.5.0", - "@turf/point-grid": "^6.5.0", - "@turf/point-on-feature": "^6.5.0", - "@turf/point-to-line-distance": "^6.5.0", - "@turf/points-within-polygon": "^6.5.0", - "@turf/polygon-smooth": "^6.5.0", - "@turf/polygon-tangents": "^6.5.0", - "@turf/polygon-to-line": "^6.5.0", - "@turf/polygonize": "^6.5.0", - "@turf/projection": "^6.5.0", - "@turf/random": "^6.5.0", - "@turf/rewind": "^6.5.0", - "@turf/rhumb-bearing": "^6.5.0", - "@turf/rhumb-destination": "^6.5.0", - "@turf/rhumb-distance": "^6.5.0", - "@turf/sample": "^6.5.0", - "@turf/sector": "^6.5.0", - "@turf/shortest-path": "^6.5.0", - "@turf/simplify": "^6.5.0", - "@turf/square": "^6.5.0", - "@turf/square-grid": "^6.5.0", - "@turf/standard-deviational-ellipse": "^6.5.0", - "@turf/tag": "^6.5.0", - "@turf/tesselate": "^6.5.0", - "@turf/tin": "^6.5.0", - "@turf/transform-rotate": "^6.5.0", - "@turf/transform-scale": "^6.5.0", - "@turf/transform-translate": "^6.5.0", - "@turf/triangle-grid": "^6.5.0", - "@turf/truncate": "^6.5.0", - "@turf/union": "^6.5.0", - "@turf/unkink-polygon": "^6.5.0", - "@turf/voronoi": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/union": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/union/-/union-6.5.0.tgz", - "integrity": "sha512-igYWCwP/f0RFHIlC2c0SKDuM/ObBaqSljI3IdV/x71805QbIvY/BYGcJdyNcgEA6cylIGl/0VSlIbpJHZ9ldhw==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "polygon-clipping": "^0.15.3" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/unkink-polygon": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/unkink-polygon/-/unkink-polygon-6.5.0.tgz", - "integrity": "sha512-8QswkzC0UqKmN1DT6HpA9upfa1HdAA5n6bbuzHy8NJOX8oVizVAqfEPY0wqqTgboDjmBR4yyImsdPGUl3gZ8JQ==", - "dependencies": { - "@turf/area": "^6.5.0", - "@turf/boolean-point-in-polygon": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0", - "rbush": "^2.0.1" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/voronoi": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/voronoi/-/voronoi-6.5.0.tgz", - "integrity": "sha512-C/xUsywYX+7h1UyNqnydHXiun4UPjK88VDghtoRypR9cLlb7qozkiLRphQxxsCM0KxyxpVPHBVQXdAL3+Yurow==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "d3-voronoi": "1.1.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@types/d3-ease": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.0.tgz", - "integrity": "sha512-aMo4eaAOijJjA6uU+GIeW018dvy9+oH5Y2VPPzjjfxevvGQ/oRDs+tfYC9b50Q4BygRR8yE2QCLsrT0WtAVseA==" - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "node_modules/concaveman": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/concaveman/-/concaveman-1.2.0.tgz", - "integrity": "sha512-OcqechF2/kubbffomKqjGEkb0ndlYhEbmyg/fxIGqdfYp5AZjD2Kl5hc97Hh3ngEuHU2314Z4KDbxL7qXGWrQQ==", - "dependencies": { - "point-in-polygon": "^1.0.1", - "rbush": "^3.0.0", - "robust-predicates": "^2.0.4", - "tinyqueue": "^2.0.3" - } - }, - "node_modules/concaveman/node_modules/quickselect": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", - "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==" - }, - "node_modules/concaveman/node_modules/rbush": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/rbush/-/rbush-3.0.1.tgz", - "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==", - "dependencies": { - "quickselect": "^2.0.0" - } - }, - "node_modules/d3-array": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", - "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" - }, - "node_modules/d3-ease": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", - "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-geo": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.7.1.tgz", - "integrity": "sha512-O4AempWAr+P5qbk2bC2FuN/sDW4z+dN2wDf9QV3bxQt4M5HfOEeXLgJ/UKQW0+o1Dj8BE+L5kiDbdWUMjsmQpw==", - "dependencies": { - "d3-array": "1" - } - }, - "node_modules/d3-voronoi": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.2.tgz", - "integrity": "sha1-Fodmfo8TotFYyAwUgMWinLDYlzw=" - }, - "node_modules/deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "dependencies": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/density-clustering": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/density-clustering/-/density-clustering-1.3.0.tgz", - "integrity": "sha1-3J9ZyPCrl+FiSsZJMP0xlIF9ysU=" - }, - "node_modules/earcut": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.3.tgz", - "integrity": "sha512-iRDI1QeCQIhMCZk48DRDMVgQSSBDmbzzNhnxIo+pwx3swkfjMh6vh0nWLq1NdvGHLKH6wIrAM3vQWeTj6qeoug==" - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/geojson-equality": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/geojson-equality/-/geojson-equality-0.1.6.tgz", - "integrity": "sha1-oXE3TvBD5dR5eZWEC65GSOB1LXI=", - "dependencies": { - "deep-equal": "^1.0.0" - } - }, - "node_modules/geojson-rbush": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/geojson-rbush/-/geojson-rbush-3.1.2.tgz", - "integrity": "sha512-grkfdg3HIeTjwTfiJe5FT8+fGU3fABCc+vRJDBwdQz9kkLF0Sbif2gs2JUzjewwgmnvLGy9fInySDeADoNuk7w==", - "dependencies": { - "@turf/bbox": "*", - "@turf/helpers": "6.x", - "@turf/meta": "6.x", - "rbush": "^2.0.0" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arguments": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", - "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", - "dependencies": { - "call-bind": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz", - "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-regex": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", - "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", - "dependencies": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/point-in-polygon": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/point-in-polygon/-/point-in-polygon-1.1.0.tgz", - "integrity": "sha512-3ojrFwjnnw8Q9242TzgXuTD+eKiutbzyslcq1ydfu82Db2y+Ogbmyrkpv0Hgj31qwT3lbS9+QAAO/pIQM35XRw==" - }, - "node_modules/polygon-clipping": { - "version": "0.15.3", - "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.3.tgz", - "integrity": "sha512-ho0Xx5DLkgxRx/+n4O74XyJ67DcyN3Tu9bGYKsnTukGAW6ssnuak6Mwcyb1wHy9MZc9xsUWqIoiazkZB5weECg==", - "dependencies": { - "splaytree": "^3.1.0" - } - }, - "node_modules/quickselect": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-1.1.1.tgz", - "integrity": "sha512-qN0Gqdw4c4KGPsBOQafj6yj/PA6c/L63f6CaZ/DCF/xF4Esu3jVmKLUDYxghFx8Kb/O7y9tI7x2RjTSXwdK1iQ==" - }, - "node_modules/rbush": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/rbush/-/rbush-2.0.2.tgz", - "integrity": "sha512-XBOuALcTm+O/H8G90b6pzu6nX6v2zCKiFG4BJho8a+bY6AER6t8uQUZdi5bomQc0AprCWhEGa7ncAbbRap0bRA==", - "dependencies": { - "quickselect": "^1.0.1" - } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", - "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/robust-predicates": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-2.0.4.tgz", - "integrity": "sha512-l4NwboJM74Ilm4VKfbAtFeGq7aEjWL+5kVFcmgFA2MrdnQWx9iE/tUGvxY5HyMI7o/WpSIUFLbC5fbeaHgSCYg==" - }, - "node_modules/skmeans": { - "version": "0.9.7", - "resolved": "https://registry.npmjs.org/skmeans/-/skmeans-0.9.7.tgz", - "integrity": "sha512-hNj1/oZ7ygsfmPZ7ZfN5MUBRoGg1gtpnImuJBgLO0ljQ67DtJuiQaiYdS4lUA6s0KCwnPhGivtC/WRwIZLkHyg==" - }, - "node_modules/splaytree": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz", - "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q==" - }, - "node_modules/tinyqueue": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz", - "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==" - }, - "node_modules/topojson-client": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", - "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==", - "dependencies": { - "commander": "2" - }, - "bin": { - "topo2geo": "bin/topo2geo", - "topomerge": "bin/topomerge", - "topoquantize": "bin/topoquantize" - } - }, - "node_modules/topojson-server": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/topojson-server/-/topojson-server-3.0.1.tgz", - "integrity": "sha512-/VS9j/ffKr2XAOjlZ9CgyyeLmgJ9dMwq6Y0YEON8O7p/tGGk+dCWnrE03zEdu7i4L7YsFZLEPZPzCvcB7lEEXw==", - "dependencies": { - "commander": "2" - }, - "bin": { - "geo2topo": "bin/geo2topo" - } - }, - "node_modules/turf-jsts": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/turf-jsts/-/turf-jsts-1.2.3.tgz", - "integrity": "sha512-Ja03QIJlPuHt4IQ2FfGex4F4JAr8m3jpaHbFbQrgwr7s7L6U8ocrHiF3J1+wf9jzhGKxvDeaCAnGDot8OjGFyA==" - } - }, - "dependencies": { - "@turf/along": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/along/-/along-6.5.0.tgz", - "integrity": "sha512-LLyWQ0AARqJCmMcIEAXF4GEu8usmd4Kbz3qk1Oy5HoRNpZX47+i5exQtmIWKdqJ1MMhW26fCTXgpsEs5zgJ5gw==", - "requires": { - "@turf/bearing": "^6.5.0", - "@turf/destination": "^6.5.0", - "@turf/distance": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - } - }, - "@turf/angle": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/angle/-/angle-6.5.0.tgz", - "integrity": "sha512-4pXMbWhFofJJAOvTMCns6N4C8CMd5Ih4O2jSAG9b3dDHakj3O4yN1+Zbm+NUei+eVEZ9gFeVp9svE3aMDenIkw==", - "requires": { - "@turf/bearing": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/rhumb-bearing": "^6.5.0" - } - }, - "@turf/area": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/area/-/area-6.5.0.tgz", - "integrity": "sha512-xCZdiuojokLbQ+29qR6qoMD89hv+JAgWjLrwSEWL+3JV8IXKeNFl6XkEJz9HGkVpnXvQKJoRz4/liT+8ZZ5Jyg==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - } - }, - "@turf/bbox": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-6.5.0.tgz", - "integrity": "sha512-RBbLaao5hXTYyyg577iuMtDB8ehxMlUqHEJiMs8jT1GHkFhr6sYre3lmLsPeYEi/ZKj5TP5tt7fkzNdJ4GIVyw==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - } - }, - "@turf/bbox-clip": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/bbox-clip/-/bbox-clip-6.5.0.tgz", - "integrity": "sha512-F6PaIRF8WMp8EmgU/Ke5B1Y6/pia14UAYB5TiBC668w5rVVjy5L8rTm/m2lEkkDMHlzoP9vNY4pxpNthE7rLcQ==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - } - }, - "@turf/bbox-polygon": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/bbox-polygon/-/bbox-polygon-6.5.0.tgz", - "integrity": "sha512-+/r0NyL1lOG3zKZmmf6L8ommU07HliP4dgYToMoTxqzsWzyLjaj/OzgQ8rBmv703WJX+aS6yCmLuIhYqyufyuw==", - "requires": { - "@turf/helpers": "^6.5.0" - } - }, - "@turf/bearing": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/bearing/-/bearing-6.5.0.tgz", - "integrity": "sha512-dxINYhIEMzgDOztyMZc20I7ssYVNEpSv04VbMo5YPQsqa80KO3TFvbuCahMsCAW5z8Tncc8dwBlEFrmRjJG33A==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - } - }, - "@turf/bezier-spline": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/bezier-spline/-/bezier-spline-6.5.0.tgz", - "integrity": "sha512-vokPaurTd4PF96rRgGVm6zYYC5r1u98ZsG+wZEv9y3kJTuJRX/O3xIY2QnTGTdbVmAJN1ouOsD0RoZYaVoXORQ==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - } - }, - "@turf/boolean-clockwise": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-clockwise/-/boolean-clockwise-6.5.0.tgz", - "integrity": "sha512-45+C7LC5RMbRWrxh3Z0Eihsc8db1VGBO5d9BLTOAwU4jR6SgsunTfRWR16X7JUwIDYlCVEmnjcXJNi/kIU3VIw==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - } - }, - "@turf/boolean-contains": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-contains/-/boolean-contains-6.5.0.tgz", - "integrity": "sha512-4m8cJpbw+YQcKVGi8y0cHhBUnYT+QRfx6wzM4GI1IdtYH3p4oh/DOBJKrepQyiDzFDaNIjxuWXBh0ai1zVwOQQ==", - "requires": { - "@turf/bbox": "^6.5.0", - "@turf/boolean-point-in-polygon": "^6.5.0", - "@turf/boolean-point-on-line": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - } - }, - "@turf/boolean-crosses": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-crosses/-/boolean-crosses-6.5.0.tgz", - "integrity": "sha512-gvshbTPhAHporTlQwBJqyfW+2yV8q/mOTxG6PzRVl6ARsqNoqYQWkd4MLug7OmAqVyBzLK3201uAeBjxbGw0Ng==", - "requires": { - "@turf/boolean-point-in-polygon": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/line-intersect": "^6.5.0", - "@turf/polygon-to-line": "^6.5.0" - } - }, - "@turf/boolean-disjoint": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-disjoint/-/boolean-disjoint-6.5.0.tgz", - "integrity": "sha512-rZ2ozlrRLIAGo2bjQ/ZUu4oZ/+ZjGvLkN5CKXSKBcu6xFO6k2bgqeM8a1836tAW+Pqp/ZFsTA5fZHsJZvP2D5g==", - "requires": { - "@turf/boolean-point-in-polygon": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/line-intersect": "^6.5.0", - "@turf/meta": "^6.5.0", - "@turf/polygon-to-line": "^6.5.0" - } - }, - "@turf/boolean-equal": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-equal/-/boolean-equal-6.5.0.tgz", - "integrity": "sha512-cY0M3yoLC26mhAnjv1gyYNQjn7wxIXmL2hBmI/qs8g5uKuC2hRWi13ydufE3k4x0aNRjFGlg41fjoYLwaVF+9Q==", - "requires": { - "@turf/clean-coords": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "geojson-equality": "0.1.6" - } - }, - "@turf/boolean-intersects": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-intersects/-/boolean-intersects-6.5.0.tgz", - "integrity": "sha512-nIxkizjRdjKCYFQMnml6cjPsDOBCThrt+nkqtSEcxkKMhAQj5OO7o2CecioNTaX8EayqwMGVKcsz27oP4mKPTw==", - "requires": { - "@turf/boolean-disjoint": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - } - }, - "@turf/boolean-overlap": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-overlap/-/boolean-overlap-6.5.0.tgz", - "integrity": "sha512-8btMIdnbXVWUa1M7D4shyaSGxLRw6NjMcqKBcsTXcZdnaixl22k7ar7BvIzkaRYN3SFECk9VGXfLncNS3ckQUw==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/line-intersect": "^6.5.0", - "@turf/line-overlap": "^6.5.0", - "@turf/meta": "^6.5.0", - "geojson-equality": "0.1.6" - } - }, - "@turf/boolean-parallel": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-parallel/-/boolean-parallel-6.5.0.tgz", - "integrity": "sha512-aSHJsr1nq9e5TthZGZ9CZYeXklJyRgR5kCLm5X4urz7+MotMOp/LsGOsvKvK9NeUl9+8OUmfMn8EFTT8LkcvIQ==", - "requires": { - "@turf/clean-coords": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/line-segment": "^6.5.0", - "@turf/rhumb-bearing": "^6.5.0" - } - }, - "@turf/boolean-point-in-polygon": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-6.5.0.tgz", - "integrity": "sha512-DtSuVFB26SI+hj0SjrvXowGTUCHlgevPAIsukssW6BG5MlNSBQAo70wpICBNJL6RjukXg8d2eXaAWuD/CqL00A==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - } - }, - "@turf/boolean-point-on-line": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-point-on-line/-/boolean-point-on-line-6.5.0.tgz", - "integrity": "sha512-A1BbuQ0LceLHvq7F/P7w3QvfpmZqbmViIUPHdNLvZimFNLo4e6IQunmzbe+8aSStH9QRZm3VOflyvNeXvvpZEQ==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - } - }, - "@turf/boolean-within": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-within/-/boolean-within-6.5.0.tgz", - "integrity": "sha512-YQB3oU18Inx35C/LU930D36RAVe7LDXk1kWsQ8mLmuqYn9YdPsDQTMTkLJMhoQ8EbN7QTdy333xRQ4MYgToteQ==", - "requires": { - "@turf/bbox": "^6.5.0", - "@turf/boolean-point-in-polygon": "^6.5.0", - "@turf/boolean-point-on-line": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - } - }, - "@turf/buffer": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/buffer/-/buffer-6.5.0.tgz", - "integrity": "sha512-qeX4N6+PPWbKqp1AVkBVWFerGjMYMUyencwfnkCesoznU6qvfugFHNAngNqIBVnJjZ5n8IFyOf+akcxnrt9sNg==", - "requires": { - "@turf/bbox": "^6.5.0", - "@turf/center": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0", - "@turf/projection": "^6.5.0", - "d3-geo": "1.7.1", - "turf-jsts": "*" - } - }, - "@turf/center": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/center/-/center-6.5.0.tgz", - "integrity": "sha512-T8KtMTfSATWcAX088rEDKjyvQCBkUsLnK/Txb6/8WUXIeOZyHu42G7MkdkHRoHtwieLdduDdmPLFyTdG5/e7ZQ==", - "requires": { - "@turf/bbox": "^6.5.0", - "@turf/helpers": "^6.5.0" - } - }, - "@turf/center-mean": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/center-mean/-/center-mean-6.5.0.tgz", - "integrity": "sha512-AAX6f4bVn12pTVrMUiB9KrnV94BgeBKpyg3YpfnEbBpkN/znfVhL8dG8IxMAxAoSZ61Zt9WLY34HfENveuOZ7Q==", - "requires": { - "@turf/bbox": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - } - }, - "@turf/center-median": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/center-median/-/center-median-6.5.0.tgz", - "integrity": "sha512-dT8Ndu5CiZkPrj15PBvslpuf01ky41DEYEPxS01LOxp5HOUHXp1oJxsPxvc+i/wK4BwccPNzU1vzJ0S4emd1KQ==", - "requires": { - "@turf/center-mean": "^6.5.0", - "@turf/centroid": "^6.5.0", - "@turf/distance": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - } - }, - "@turf/center-of-mass": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/center-of-mass/-/center-of-mass-6.5.0.tgz", - "integrity": "sha512-EWrriU6LraOfPN7m1jZi+1NLTKNkuIsGLZc2+Y8zbGruvUW+QV7K0nhf7iZWutlxHXTBqEXHbKue/o79IumAsQ==", - "requires": { - "@turf/centroid": "^6.5.0", - "@turf/convex": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/meta": "^6.5.0" - } - }, - "@turf/centroid": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/centroid/-/centroid-6.5.0.tgz", - "integrity": "sha512-MwE1oq5E3isewPprEClbfU5pXljIK/GUOMbn22UM3IFPDJX0KeoyLNwghszkdmFp/qMGL/M13MMWvU+GNLXP/A==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - } - }, - "@turf/circle": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/circle/-/circle-6.5.0.tgz", - "integrity": "sha512-oU1+Kq9DgRnoSbWFHKnnUdTmtcRUMmHoV9DjTXu9vOLNV5OWtAAh1VZ+mzsioGGzoDNT/V5igbFOkMfBQc0B6A==", - "requires": { - "@turf/destination": "^6.5.0", - "@turf/helpers": "^6.5.0" - } - }, - "@turf/clean-coords": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/clean-coords/-/clean-coords-6.5.0.tgz", - "integrity": "sha512-EMX7gyZz0WTH/ET7xV8MyrExywfm9qUi0/MY89yNffzGIEHuFfqwhcCqZ8O00rZIPZHUTxpmsxQSTfzJJA1CPw==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - } - }, - "@turf/clone": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/clone/-/clone-6.5.0.tgz", - "integrity": "sha512-mzVtTFj/QycXOn6ig+annKrM6ZlimreKYz6f/GSERytOpgzodbQyOgkfwru100O1KQhhjSudKK4DsQ0oyi9cTw==", - "requires": { - "@turf/helpers": "^6.5.0" - } - }, - "@turf/clusters": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/clusters/-/clusters-6.5.0.tgz", - "integrity": "sha512-Y6gfnTJzQ1hdLfCsyd5zApNbfLIxYEpmDibHUqR5z03Lpe02pa78JtgrgUNt1seeO/aJ4TG1NLN8V5gOrHk04g==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - } - }, - "@turf/clusters-dbscan": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/clusters-dbscan/-/clusters-dbscan-6.5.0.tgz", - "integrity": "sha512-SxZEE4kADU9DqLRiT53QZBBhu8EP9skviSyl+FGj08Y01xfICM/RR9ACUdM0aEQimhpu+ZpRVcUK+2jtiCGrYQ==", - "requires": { - "@turf/clone": "^6.5.0", - "@turf/distance": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0", - "density-clustering": "1.3.0" - } - }, - "@turf/clusters-kmeans": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/clusters-kmeans/-/clusters-kmeans-6.5.0.tgz", - "integrity": "sha512-DwacD5+YO8kwDPKaXwT9DV46tMBVNsbi1IzdajZu1JDSWoN7yc7N9Qt88oi+p30583O0UPVkAK+A10WAQv4mUw==", - "requires": { - "@turf/clone": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/meta": "^6.5.0", - "skmeans": "0.9.7" - } - }, - "@turf/collect": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/collect/-/collect-6.5.0.tgz", - "integrity": "sha512-4dN/T6LNnRg099m97BJeOcTA5fSI8cu87Ydgfibewd2KQwBexO69AnjEFqfPX3Wj+Zvisj1uAVIZbPmSSrZkjg==", - "requires": { - "@turf/bbox": "^6.5.0", - "@turf/boolean-point-in-polygon": "^6.5.0", - "@turf/helpers": "^6.5.0", - "rbush": "2.x" - } - }, - "@turf/combine": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/combine/-/combine-6.5.0.tgz", - "integrity": "sha512-Q8EIC4OtAcHiJB3C4R+FpB4LANiT90t17uOd851qkM2/o6m39bfN5Mv0PWqMZIHWrrosZqRqoY9dJnzz/rJxYQ==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - } - }, - "@turf/concave": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/concave/-/concave-6.5.0.tgz", - "integrity": "sha512-I/sUmUC8TC5h/E2vPwxVht+nRt+TnXIPRoztDFvS8/Y0+cBDple9inLSo9nnPXMXidrBlGXZ9vQx/BjZUJgsRQ==", - "requires": { - "@turf/clone": "^6.5.0", - "@turf/distance": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/meta": "^6.5.0", - "@turf/tin": "^6.5.0", - "topojson-client": "3.x", - "topojson-server": "3.x" - } - }, - "@turf/convex": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/convex/-/convex-6.5.0.tgz", - "integrity": "sha512-x7ZwC5z7PJB0SBwNh7JCeCNx7Iu+QSrH7fYgK0RhhNop13TqUlvHMirMLRgf2db1DqUetrAO2qHJeIuasquUWg==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0", - "concaveman": "*" - } - }, - "@turf/destination": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/destination/-/destination-6.5.0.tgz", - "integrity": "sha512-4cnWQlNC8d1tItOz9B4pmJdWpXqS0vEvv65bI/Pj/genJnsL7evI0/Xw42RvEGROS481MPiU80xzvwxEvhQiMQ==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - } - }, - "@turf/difference": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.5.0.tgz", - "integrity": "sha512-l8iR5uJqvI+5Fs6leNbhPY5t/a3vipUF/3AeVLpwPQcgmedNXyheYuy07PcMGH5Jdpi5gItOiTqwiU/bUH4b3A==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "polygon-clipping": "^0.15.3" - } - }, - "@turf/dissolve": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/dissolve/-/dissolve-6.5.0.tgz", - "integrity": "sha512-WBVbpm9zLTp0Bl9CE35NomTaOL1c4TQCtEoO43YaAhNEWJOOIhZMFJyr8mbvYruKl817KinT3x7aYjjCMjTAsQ==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/meta": "^6.5.0", - "polygon-clipping": "^0.15.3" - } - }, - "@turf/distance": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/distance/-/distance-6.5.0.tgz", - "integrity": "sha512-xzykSLfoURec5qvQJcfifw/1mJa+5UwByZZ5TZ8iaqjGYN0vomhV9aiSLeYdUGtYRESZ+DYC/OzY+4RclZYgMg==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - } - }, - "@turf/distance-weight": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/distance-weight/-/distance-weight-6.5.0.tgz", - "integrity": "sha512-a8qBKkgVNvPKBfZfEJZnC3DV7dfIsC3UIdpRci/iap/wZLH41EmS90nM+BokAJflUHYy8PqE44wySGWHN1FXrQ==", - "requires": { - "@turf/centroid": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/meta": "^6.5.0" - } - }, - "@turf/ellipse": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/ellipse/-/ellipse-6.5.0.tgz", - "integrity": "sha512-kuXtwFviw/JqnyJXF1mrR/cb496zDTSbGKtSiolWMNImYzGGkbsAsFTjwJYgD7+4FixHjp0uQPzo70KDf3AIBw==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/rhumb-destination": "^6.5.0", - "@turf/transform-rotate": "^6.5.0" - } - }, - "@turf/envelope": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/envelope/-/envelope-6.5.0.tgz", - "integrity": "sha512-9Z+FnBWvOGOU4X+fMZxYFs1HjFlkKqsddLuMknRaqcJd6t+NIv5DWvPtDL8ATD2GEExYDiFLwMdckfr1yqJgHA==", - "requires": { - "@turf/bbox": "^6.5.0", - "@turf/bbox-polygon": "^6.5.0", - "@turf/helpers": "^6.5.0" - } - }, - "@turf/explode": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/explode/-/explode-6.5.0.tgz", - "integrity": "sha512-6cSvMrnHm2qAsace6pw9cDmK2buAlw8+tjeJVXMfMyY+w7ZUi1rprWMsY92J7s2Dar63Bv09n56/1V7+tcj52Q==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - } - }, - "@turf/flatten": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/flatten/-/flatten-6.5.0.tgz", - "integrity": "sha512-IBZVwoNLVNT6U/bcUUllubgElzpMsNoCw8tLqBw6dfYg9ObGmpEjf9BIYLr7a2Yn5ZR4l7YIj2T7kD5uJjZADQ==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - } - }, - "@turf/flip": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/flip/-/flip-6.5.0.tgz", - "integrity": "sha512-oyikJFNjt2LmIXQqgOGLvt70RgE2lyzPMloYWM7OR5oIFGRiBvqVD2hA6MNw6JewIm30fWZ8DQJw1NHXJTJPbg==", - "requires": { - "@turf/clone": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - } - }, - "@turf/great-circle": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/great-circle/-/great-circle-6.5.0.tgz", - "integrity": "sha512-7ovyi3HaKOXdFyN7yy1yOMa8IyOvV46RC1QOQTT+RYUN8ke10eyqExwBpL9RFUPvlpoTzoYbM/+lWPogQlFncg==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - } - }, - "@turf/helpers": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.5.0.tgz", - "integrity": "sha512-VbI1dV5bLFzohYYdgqwikdMVpe7pJ9X3E+dlr425wa2/sMJqYDhTO++ec38/pcPvPE6oD9WEEeU3Xu3gza+VPw==" - }, - "@turf/hex-grid": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/hex-grid/-/hex-grid-6.5.0.tgz", - "integrity": "sha512-Ln3tc2tgZT8etDOldgc6e741Smg1CsMKAz1/Mlel+MEL5Ynv2mhx3m0q4J9IB1F3a4MNjDeVvm8drAaf9SF33g==", - "requires": { - "@turf/distance": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/intersect": "^6.5.0", - "@turf/invariant": "^6.5.0" - } - }, - "@turf/interpolate": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/interpolate/-/interpolate-6.5.0.tgz", - "integrity": "sha512-LSH5fMeiGyuDZ4WrDJNgh81d2DnNDUVJtuFryJFup8PV8jbs46lQGfI3r1DJ2p1IlEJIz3pmAZYeTfMMoeeohw==", - "requires": { - "@turf/bbox": "^6.5.0", - "@turf/centroid": "^6.5.0", - "@turf/clone": "^6.5.0", - "@turf/distance": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/hex-grid": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/meta": "^6.5.0", - "@turf/point-grid": "^6.5.0", - "@turf/square-grid": "^6.5.0", - "@turf/triangle-grid": "^6.5.0" - } - }, - "@turf/intersect": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.5.0.tgz", - "integrity": "sha512-2legGJeKrfFkzntcd4GouPugoqPUjexPZnOvfez+3SfIMrHvulw8qV8u7pfVyn2Yqs53yoVCEjS5sEpvQ5YRQg==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "polygon-clipping": "^0.15.3" - } - }, - "@turf/invariant": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.5.0.tgz", - "integrity": "sha512-Wv8PRNCtPD31UVbdJE/KVAWKe7l6US+lJItRR/HOEW3eh+U/JwRCSUl/KZ7bmjM/C+zLNoreM2TU6OoLACs4eg==", - "requires": { - "@turf/helpers": "^6.5.0" - } - }, - "@turf/isobands": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/isobands/-/isobands-6.5.0.tgz", - "integrity": "sha512-4h6sjBPhRwMVuFaVBv70YB7eGz+iw0bhPRnp+8JBdX1UPJSXhoi/ZF2rACemRUr0HkdVB/a1r9gC32vn5IAEkw==", - "requires": { - "@turf/area": "^6.5.0", - "@turf/bbox": "^6.5.0", - "@turf/boolean-point-in-polygon": "^6.5.0", - "@turf/explode": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/meta": "^6.5.0", - "object-assign": "*" - } - }, - "@turf/isolines": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/isolines/-/isolines-6.5.0.tgz", - "integrity": "sha512-6ElhiLCopxWlv4tPoxiCzASWt/jMRvmp6mRYrpzOm3EUl75OhHKa/Pu6Y9nWtCMmVC/RcWtiiweUocbPLZLm0A==", - "requires": { - "@turf/bbox": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/meta": "^6.5.0", - "object-assign": "*" - } - }, - "@turf/kinks": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.5.0.tgz", - "integrity": "sha512-ViCngdPt1eEL7hYUHR2eHR662GvCgTc35ZJFaNR6kRtr6D8plLaDju0FILeFFWSc+o8e3fwxZEJKmFj9IzPiIQ==", - "requires": { - "@turf/helpers": "^6.5.0" - } - }, - "@turf/length": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/length/-/length-6.5.0.tgz", - "integrity": "sha512-5pL5/pnw52fck3oRsHDcSGrj9HibvtlrZ0QNy2OcW8qBFDNgZ4jtl6U7eATVoyWPKBHszW3dWETW+iLV7UARig==", - "requires": { - "@turf/distance": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - } - }, - "@turf/line-arc": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/line-arc/-/line-arc-6.5.0.tgz", - "integrity": "sha512-I6c+V6mIyEwbtg9P9zSFF89T7QPe1DPTG3MJJ6Cm1MrAY0MdejwQKOpsvNl8LDU2ekHOlz2kHpPVR7VJsoMllA==", - "requires": { - "@turf/circle": "^6.5.0", - "@turf/destination": "^6.5.0", - "@turf/helpers": "^6.5.0" - } - }, - "@turf/line-chunk": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/line-chunk/-/line-chunk-6.5.0.tgz", - "integrity": "sha512-i1FGE6YJaaYa+IJesTfyRRQZP31QouS+wh/pa6O3CC0q4T7LtHigyBSYjrbjSLfn2EVPYGlPCMFEqNWCOkC6zg==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/length": "^6.5.0", - "@turf/line-slice-along": "^6.5.0", - "@turf/meta": "^6.5.0" - } - }, - "@turf/line-intersect": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/line-intersect/-/line-intersect-6.5.0.tgz", - "integrity": "sha512-CS6R1tZvVQD390G9Ea4pmpM6mJGPWoL82jD46y0q1KSor9s6HupMIo1kY4Ny+AEYQl9jd21V3Scz20eldpbTVA==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/line-segment": "^6.5.0", - "@turf/meta": "^6.5.0", - "geojson-rbush": "3.x" - } - }, - "@turf/line-offset": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/line-offset/-/line-offset-6.5.0.tgz", - "integrity": "sha512-CEXZbKgyz8r72qRvPchK0dxqsq8IQBdH275FE6o4MrBkzMcoZsfSjghtXzKaz9vvro+HfIXal0sTk2mqV1lQTw==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/meta": "^6.5.0" - } - }, - "@turf/line-overlap": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/line-overlap/-/line-overlap-6.5.0.tgz", - "integrity": "sha512-xHOaWLd0hkaC/1OLcStCpfq55lPHpPNadZySDXYiYjEz5HXr1oKmtMYpn0wGizsLwrOixRdEp+j7bL8dPt4ojQ==", - "requires": { - "@turf/boolean-point-on-line": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/line-segment": "^6.5.0", - "@turf/meta": "^6.5.0", - "@turf/nearest-point-on-line": "^6.5.0", - "deep-equal": "1.x", - "geojson-rbush": "3.x" - } - }, - "@turf/line-segment": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/line-segment/-/line-segment-6.5.0.tgz", - "integrity": "sha512-jI625Ho4jSuJESNq66Mmi290ZJ5pPZiQZruPVpmHkUw257Pew0alMmb6YrqYNnLUuiVVONxAAKXUVeeUGtycfw==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/meta": "^6.5.0" - } - }, - "@turf/line-slice": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/line-slice/-/line-slice-6.5.0.tgz", - "integrity": "sha512-vDqJxve9tBHhOaVVFXqVjF5qDzGtKWviyjbyi2QnSnxyFAmLlLnBfMX8TLQCAf2GxHibB95RO5FBE6I2KVPRuw==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/nearest-point-on-line": "^6.5.0" - } - }, - "@turf/line-slice-along": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/line-slice-along/-/line-slice-along-6.5.0.tgz", - "integrity": "sha512-KHJRU6KpHrAj+BTgTNqby6VCTnDzG6a1sJx/I3hNvqMBLvWVA2IrkR9L9DtsQsVY63IBwVdQDqiwCuZLDQh4Ng==", - "requires": { - "@turf/bearing": "^6.5.0", - "@turf/destination": "^6.5.0", - "@turf/distance": "^6.5.0", - "@turf/helpers": "^6.5.0" - } - }, - "@turf/line-split": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/line-split/-/line-split-6.5.0.tgz", - "integrity": "sha512-/rwUMVr9OI2ccJjw7/6eTN53URtGThNSD5I0GgxyFXMtxWiloRJ9MTff8jBbtPWrRka/Sh2GkwucVRAEakx9Sw==", - "requires": { - "@turf/bbox": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/line-intersect": "^6.5.0", - "@turf/line-segment": "^6.5.0", - "@turf/meta": "^6.5.0", - "@turf/nearest-point-on-line": "^6.5.0", - "@turf/square": "^6.5.0", - "@turf/truncate": "^6.5.0", - "geojson-rbush": "3.x" - } - }, - "@turf/line-to-polygon": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/line-to-polygon/-/line-to-polygon-6.5.0.tgz", - "integrity": "sha512-qYBuRCJJL8Gx27OwCD1TMijM/9XjRgXH/m/TyuND4OXedBpIWlK5VbTIO2gJ8OCfznBBddpjiObLBrkuxTpN4Q==", - "requires": { - "@turf/bbox": "^6.5.0", - "@turf/clone": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - } - }, - "@turf/mask": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/mask/-/mask-6.5.0.tgz", - "integrity": "sha512-RQha4aU8LpBrmrkH8CPaaoAfk0Egj5OuXtv6HuCQnHeGNOQt3TQVibTA3Sh4iduq4EPxnZfDjgsOeKtrCA19lg==", - "requires": { - "@turf/helpers": "^6.5.0", - "polygon-clipping": "^0.15.3" - } - }, - "@turf/meta": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-6.5.0.tgz", - "integrity": "sha512-RrArvtsV0vdsCBegoBtOalgdSOfkBrTJ07VkpiCnq/491W67hnMWmDu7e6Ztw0C3WldRYTXkg3SumfdzZxLBHA==", - "requires": { - "@turf/helpers": "^6.5.0" - } - }, - "@turf/midpoint": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/midpoint/-/midpoint-6.5.0.tgz", - "integrity": "sha512-MyTzV44IwmVI6ec9fB2OgZ53JGNlgOpaYl9ArKoF49rXpL84F9rNATndbe0+MQIhdkw8IlzA6xVP4lZzfMNVCw==", - "requires": { - "@turf/bearing": "^6.5.0", - "@turf/destination": "^6.5.0", - "@turf/distance": "^6.5.0", - "@turf/helpers": "^6.5.0" - } - }, - "@turf/moran-index": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/moran-index/-/moran-index-6.5.0.tgz", - "integrity": "sha512-ItsnhrU2XYtTtTudrM8so4afBCYWNaB0Mfy28NZwLjB5jWuAsvyV+YW+J88+neK/ougKMTawkmjQqodNJaBeLQ==", - "requires": { - "@turf/distance-weight": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - } - }, - "@turf/nearest-point": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/nearest-point/-/nearest-point-6.5.0.tgz", - "integrity": "sha512-fguV09QxilZv/p94s8SMsXILIAMiaXI5PATq9d7YWijLxWUj6Q/r43kxyoi78Zmwwh1Zfqz9w+bCYUAxZ5+euA==", - "requires": { - "@turf/clone": "^6.5.0", - "@turf/distance": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - } - }, - "@turf/nearest-point-on-line": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/nearest-point-on-line/-/nearest-point-on-line-6.5.0.tgz", - "integrity": "sha512-WthrvddddvmymnC+Vf7BrkHGbDOUu6Z3/6bFYUGv1kxw8tiZ6n83/VG6kHz4poHOfS0RaNflzXSkmCi64fLBlg==", - "requires": { - "@turf/bearing": "^6.5.0", - "@turf/destination": "^6.5.0", - "@turf/distance": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/line-intersect": "^6.5.0", - "@turf/meta": "^6.5.0" - } - }, - "@turf/nearest-point-to-line": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/nearest-point-to-line/-/nearest-point-to-line-6.5.0.tgz", - "integrity": "sha512-PXV7cN0BVzUZdjj6oeb/ESnzXSfWmEMrsfZSDRgqyZ9ytdiIj/eRsnOXLR13LkTdXVOJYDBuf7xt1mLhM4p6+Q==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/meta": "^6.5.0", - "@turf/point-to-line-distance": "^6.5.0", - "object-assign": "*" - } - }, - "@turf/planepoint": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/planepoint/-/planepoint-6.5.0.tgz", - "integrity": "sha512-R3AahA6DUvtFbka1kcJHqZ7DMHmPXDEQpbU5WaglNn7NaCQg9HB0XM0ZfqWcd5u92YXV+Gg8QhC8x5XojfcM4Q==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - } - }, - "@turf/point-grid": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/point-grid/-/point-grid-6.5.0.tgz", - "integrity": "sha512-Iq38lFokNNtQJnOj/RBKmyt6dlof0yhaHEDELaWHuECm1lIZLY3ZbVMwbs+nXkwTAHjKfS/OtMheUBkw+ee49w==", - "requires": { - "@turf/boolean-within": "^6.5.0", - "@turf/distance": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - } - }, - "@turf/point-on-feature": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/point-on-feature/-/point-on-feature-6.5.0.tgz", - "integrity": "sha512-bDpuIlvugJhfcF/0awAQ+QI6Om1Y1FFYE8Y/YdxGRongivix850dTeXCo0mDylFdWFPGDo7Mmh9Vo4VxNwW/TA==", - "requires": { - "@turf/boolean-point-in-polygon": "^6.5.0", - "@turf/center": "^6.5.0", - "@turf/explode": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/nearest-point": "^6.5.0" - } - }, - "@turf/point-to-line-distance": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/point-to-line-distance/-/point-to-line-distance-6.5.0.tgz", - "integrity": "sha512-opHVQ4vjUhNBly1bob6RWy+F+hsZDH9SA0UW36pIRzfpu27qipU18xup0XXEePfY6+wvhF6yL/WgCO2IbrLqEA==", - "requires": { - "@turf/bearing": "^6.5.0", - "@turf/distance": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/meta": "^6.5.0", - "@turf/projection": "^6.5.0", - "@turf/rhumb-bearing": "^6.5.0", - "@turf/rhumb-distance": "^6.5.0" - } - }, - "@turf/points-within-polygon": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/points-within-polygon/-/points-within-polygon-6.5.0.tgz", - "integrity": "sha512-YyuheKqjliDsBDt3Ho73QVZk1VXX1+zIA2gwWvuz8bR1HXOkcuwk/1J76HuFMOQI3WK78wyAi+xbkx268PkQzQ==", - "requires": { - "@turf/boolean-point-in-polygon": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - } - }, - "@turf/polygon-smooth": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/polygon-smooth/-/polygon-smooth-6.5.0.tgz", - "integrity": "sha512-LO/X/5hfh/Rk4EfkDBpLlVwt3i6IXdtQccDT9rMjXEP32tRgy0VMFmdkNaXoGlSSKf/1mGqLl4y4wHd86DqKbg==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - } - }, - "@turf/polygon-tangents": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/polygon-tangents/-/polygon-tangents-6.5.0.tgz", - "integrity": "sha512-sB4/IUqJMYRQH9jVBwqS/XDitkEfbyqRy+EH/cMRJURTg78eHunvJ708x5r6umXsbiUyQU4eqgPzEylWEQiunw==", - "requires": { - "@turf/bbox": "^6.5.0", - "@turf/boolean-within": "^6.5.0", - "@turf/explode": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/nearest-point": "^6.5.0" - } - }, - "@turf/polygon-to-line": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/polygon-to-line/-/polygon-to-line-6.5.0.tgz", - "integrity": "sha512-5p4n/ij97EIttAq+ewSnKt0ruvuM+LIDzuczSzuHTpq4oS7Oq8yqg5TQ4nzMVuK41r/tALCk7nAoBuw3Su4Gcw==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - } - }, - "@turf/polygonize": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/polygonize/-/polygonize-6.5.0.tgz", - "integrity": "sha512-a/3GzHRaCyzg7tVYHo43QUChCspa99oK4yPqooVIwTC61npFzdrmnywMv0S+WZjHZwK37BrFJGFrZGf6ocmY5w==", - "requires": { - "@turf/boolean-point-in-polygon": "^6.5.0", - "@turf/envelope": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/meta": "^6.5.0" - } - }, - "@turf/projection": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/projection/-/projection-6.5.0.tgz", - "integrity": "sha512-/Pgh9mDvQWWu8HRxqpM+tKz8OzgauV+DiOcr3FCjD6ubDnrrmMJlsf6fFJmggw93mtVPrZRL6yyi9aYCQBOIvg==", - "requires": { - "@turf/clone": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - } - }, - "@turf/random": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/random/-/random-6.5.0.tgz", - "integrity": "sha512-8Q25gQ/XbA7HJAe+eXp4UhcXM9aOOJFaxZ02+XSNwMvY8gtWSCBLVqRcW4OhqilgZ8PeuQDWgBxeo+BIqqFWFQ==", - "requires": { - "@turf/helpers": "^6.5.0" - } - }, - "@turf/rectangle-grid": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/rectangle-grid/-/rectangle-grid-6.5.0.tgz", - "integrity": "sha512-yQZ/1vbW68O2KsSB3OZYK+72aWz/Adnf7m2CMKcC+aq6TwjxZjAvlbCOsNUnMAuldRUVN1ph6RXMG4e9KEvKvg==", - "requires": { - "@turf/boolean-intersects": "^6.5.0", - "@turf/distance": "^6.5.0", - "@turf/helpers": "^6.5.0" - } - }, - "@turf/rewind": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/rewind/-/rewind-6.5.0.tgz", - "integrity": "sha512-IoUAMcHWotBWYwSYuYypw/LlqZmO+wcBpn8ysrBNbazkFNkLf3btSDZMkKJO/bvOzl55imr/Xj4fi3DdsLsbzQ==", - "requires": { - "@turf/boolean-clockwise": "^6.5.0", - "@turf/clone": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/meta": "^6.5.0" - } - }, - "@turf/rhumb-bearing": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/rhumb-bearing/-/rhumb-bearing-6.5.0.tgz", - "integrity": "sha512-jMyqiMRK4hzREjQmnLXmkJ+VTNTx1ii8vuqRwJPcTlKbNWfjDz/5JqJlb5NaFDcdMpftWovkW5GevfnuzHnOYA==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - } - }, - "@turf/rhumb-destination": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/rhumb-destination/-/rhumb-destination-6.5.0.tgz", - "integrity": "sha512-RHNP1Oy+7xTTdRrTt375jOZeHceFbjwohPHlr9Hf68VdHHPMAWgAKqiX2YgSWDcvECVmiGaBKWus1Df+N7eE4Q==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - } - }, - "@turf/rhumb-distance": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/rhumb-distance/-/rhumb-distance-6.5.0.tgz", - "integrity": "sha512-oKp8KFE8E4huC2Z1a1KNcFwjVOqa99isxNOwfo4g3SUABQ6NezjKDDrnvC4yI5YZ3/huDjULLBvhed45xdCrzg==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0" - } - }, - "@turf/sample": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/sample/-/sample-6.5.0.tgz", - "integrity": "sha512-kSdCwY7el15xQjnXYW520heKUrHwRvnzx8ka4eYxX9NFeOxaFITLW2G7UtXb6LJK8mmPXI8Aexv23F2ERqzGFg==", - "requires": { - "@turf/helpers": "^6.5.0" - } - }, - "@turf/sector": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/sector/-/sector-6.5.0.tgz", - "integrity": "sha512-cYUOkgCTWqa23SOJBqxoFAc/yGCUsPRdn/ovbRTn1zNTm/Spmk6hVB84LCKOgHqvSF25i0d2kWqpZDzLDdAPbw==", - "requires": { - "@turf/circle": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/line-arc": "^6.5.0", - "@turf/meta": "^6.5.0" - } - }, - "@turf/shortest-path": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/shortest-path/-/shortest-path-6.5.0.tgz", - "integrity": "sha512-4de5+G7+P4hgSoPwn+SO9QSi9HY5NEV/xRJ+cmoFVRwv2CDsuOPDheHKeuIAhKyeKDvPvPt04XYWbac4insJMg==", - "requires": { - "@turf/bbox": "^6.5.0", - "@turf/bbox-polygon": "^6.5.0", - "@turf/boolean-point-in-polygon": "^6.5.0", - "@turf/clean-coords": "^6.5.0", - "@turf/distance": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/meta": "^6.5.0", - "@turf/transform-scale": "^6.5.0" - } - }, - "@turf/simplify": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/simplify/-/simplify-6.5.0.tgz", - "integrity": "sha512-USas3QqffPHUY184dwQdP8qsvcVH/PWBYdXY5am7YTBACaQOMAlf6AKJs9FT8jiO6fQpxfgxuEtwmox+pBtlOg==", - "requires": { - "@turf/clean-coords": "^6.5.0", - "@turf/clone": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - } - }, - "@turf/square": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/square/-/square-6.5.0.tgz", - "integrity": "sha512-BM2UyWDmiuHCadVhHXKIx5CQQbNCpOxB6S/aCNOCLbhCeypKX5Q0Aosc5YcmCJgkwO5BERCC6Ee7NMbNB2vHmQ==", - "requires": { - "@turf/distance": "^6.5.0", - "@turf/helpers": "^6.5.0" - } - }, - "@turf/square-grid": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/square-grid/-/square-grid-6.5.0.tgz", - "integrity": "sha512-mlR0ayUdA+L4c9h7p4k3pX6gPWHNGuZkt2c5II1TJRmhLkW2557d6b/Vjfd1z9OVaajb1HinIs1FMSAPXuuUrA==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/rectangle-grid": "^6.5.0" - } - }, - "@turf/standard-deviational-ellipse": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/standard-deviational-ellipse/-/standard-deviational-ellipse-6.5.0.tgz", - "integrity": "sha512-02CAlz8POvGPFK2BKK8uHGUk/LXb0MK459JVjKxLC2yJYieOBTqEbjP0qaWhiBhGzIxSMaqe8WxZ0KvqdnstHA==", - "requires": { - "@turf/center-mean": "^6.5.0", - "@turf/ellipse": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/meta": "^6.5.0", - "@turf/points-within-polygon": "^6.5.0" - } - }, - "@turf/tag": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/tag/-/tag-6.5.0.tgz", - "integrity": "sha512-XwlBvrOV38CQsrNfrxvBaAPBQgXMljeU0DV8ExOyGM7/hvuGHJw3y8kKnQ4lmEQcmcrycjDQhP7JqoRv8vFssg==", - "requires": { - "@turf/boolean-point-in-polygon": "^6.5.0", - "@turf/clone": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - } - }, - "@turf/tesselate": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/tesselate/-/tesselate-6.5.0.tgz", - "integrity": "sha512-M1HXuyZFCfEIIKkglh/r5L9H3c5QTEsnMBoZOFQiRnGPGmJWcaBissGb7mTFX2+DKE7FNWXh4TDnZlaLABB0dQ==", - "requires": { - "@turf/helpers": "^6.5.0", - "earcut": "^2.0.0" - } - }, - "@turf/tin": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/tin/-/tin-6.5.0.tgz", - "integrity": "sha512-YLYikRzKisfwj7+F+Tmyy/LE3d2H7D4kajajIfc9mlik2+esG7IolsX/+oUz1biguDYsG0DUA8kVYXDkobukfg==", - "requires": { - "@turf/helpers": "^6.5.0" - } - }, - "@turf/transform-rotate": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/transform-rotate/-/transform-rotate-6.5.0.tgz", - "integrity": "sha512-A2Ip1v4246ZmpssxpcL0hhiVBEf4L8lGnSPWTgSv5bWBEoya2fa/0SnFX9xJgP40rMP+ZzRaCN37vLHbv1Guag==", - "requires": { - "@turf/centroid": "^6.5.0", - "@turf/clone": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/meta": "^6.5.0", - "@turf/rhumb-bearing": "^6.5.0", - "@turf/rhumb-destination": "^6.5.0", - "@turf/rhumb-distance": "^6.5.0" - } - }, - "@turf/transform-scale": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/transform-scale/-/transform-scale-6.5.0.tgz", - "integrity": "sha512-VsATGXC9rYM8qTjbQJ/P7BswKWXHdnSJ35JlV4OsZyHBMxJQHftvmZJsFbOqVtQnIQIzf2OAly6rfzVV9QLr7g==", - "requires": { - "@turf/bbox": "^6.5.0", - "@turf/center": "^6.5.0", - "@turf/centroid": "^6.5.0", - "@turf/clone": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/meta": "^6.5.0", - "@turf/rhumb-bearing": "^6.5.0", - "@turf/rhumb-destination": "^6.5.0", - "@turf/rhumb-distance": "^6.5.0" - } - }, - "@turf/transform-translate": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/transform-translate/-/transform-translate-6.5.0.tgz", - "integrity": "sha512-NABLw5VdtJt/9vSstChp93pc6oel4qXEos56RBMsPlYB8hzNTEKYtC146XJvyF4twJeeYS8RVe1u7KhoFwEM5w==", - "requires": { - "@turf/clone": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/meta": "^6.5.0", - "@turf/rhumb-destination": "^6.5.0" - } - }, - "@turf/triangle-grid": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/triangle-grid/-/triangle-grid-6.5.0.tgz", - "integrity": "sha512-2jToUSAS1R1htq4TyLQYPTIsoy6wg3e3BQXjm2rANzw4wPQCXGOxrur1Fy9RtzwqwljlC7DF4tg0OnWr8RjmfA==", - "requires": { - "@turf/distance": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/intersect": "^6.5.0" - } - }, - "@turf/truncate": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/truncate/-/truncate-6.5.0.tgz", - "integrity": "sha512-pFxg71pLk+eJj134Z9yUoRhIi8vqnnKvCYwdT4x/DQl/19RVdq1tV3yqOT3gcTQNfniteylL5qV1uTBDV5sgrg==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - } - }, - "@turf/turf": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/turf/-/turf-6.5.0.tgz", - "integrity": "sha512-ipMCPnhu59bh92MNt8+pr1VZQhHVuTMHklciQURo54heoxRzt1neNYZOBR6jdL+hNsbDGAECMuIpAutX+a3Y+w==", - "requires": { - "@turf/along": "^6.5.0", - "@turf/angle": "^6.5.0", - "@turf/area": "^6.5.0", - "@turf/bbox": "^6.5.0", - "@turf/bbox-clip": "^6.5.0", - "@turf/bbox-polygon": "^6.5.0", - "@turf/bearing": "^6.5.0", - "@turf/bezier-spline": "^6.5.0", - "@turf/boolean-clockwise": "^6.5.0", - "@turf/boolean-contains": "^6.5.0", - "@turf/boolean-crosses": "^6.5.0", - "@turf/boolean-disjoint": "^6.5.0", - "@turf/boolean-equal": "^6.5.0", - "@turf/boolean-intersects": "^6.5.0", - "@turf/boolean-overlap": "^6.5.0", - "@turf/boolean-parallel": "^6.5.0", - "@turf/boolean-point-in-polygon": "^6.5.0", - "@turf/boolean-point-on-line": "^6.5.0", - "@turf/boolean-within": "^6.5.0", - "@turf/buffer": "^6.5.0", - "@turf/center": "^6.5.0", - "@turf/center-mean": "^6.5.0", - "@turf/center-median": "^6.5.0", - "@turf/center-of-mass": "^6.5.0", - "@turf/centroid": "^6.5.0", - "@turf/circle": "^6.5.0", - "@turf/clean-coords": "^6.5.0", - "@turf/clone": "^6.5.0", - "@turf/clusters": "^6.5.0", - "@turf/clusters-dbscan": "^6.5.0", - "@turf/clusters-kmeans": "^6.5.0", - "@turf/collect": "^6.5.0", - "@turf/combine": "^6.5.0", - "@turf/concave": "^6.5.0", - "@turf/convex": "^6.5.0", - "@turf/destination": "^6.5.0", - "@turf/difference": "^6.5.0", - "@turf/dissolve": "^6.5.0", - "@turf/distance": "^6.5.0", - "@turf/distance-weight": "^6.5.0", - "@turf/ellipse": "^6.5.0", - "@turf/envelope": "^6.5.0", - "@turf/explode": "^6.5.0", - "@turf/flatten": "^6.5.0", - "@turf/flip": "^6.5.0", - "@turf/great-circle": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/hex-grid": "^6.5.0", - "@turf/interpolate": "^6.5.0", - "@turf/intersect": "^6.5.0", - "@turf/invariant": "^6.5.0", - "@turf/isobands": "^6.5.0", - "@turf/isolines": "^6.5.0", - "@turf/kinks": "^6.5.0", - "@turf/length": "^6.5.0", - "@turf/line-arc": "^6.5.0", - "@turf/line-chunk": "^6.5.0", - "@turf/line-intersect": "^6.5.0", - "@turf/line-offset": "^6.5.0", - "@turf/line-overlap": "^6.5.0", - "@turf/line-segment": "^6.5.0", - "@turf/line-slice": "^6.5.0", - "@turf/line-slice-along": "^6.5.0", - "@turf/line-split": "^6.5.0", - "@turf/line-to-polygon": "^6.5.0", - "@turf/mask": "^6.5.0", - "@turf/meta": "^6.5.0", - "@turf/midpoint": "^6.5.0", - "@turf/moran-index": "^6.5.0", - "@turf/nearest-point": "^6.5.0", - "@turf/nearest-point-on-line": "^6.5.0", - "@turf/nearest-point-to-line": "^6.5.0", - "@turf/planepoint": "^6.5.0", - "@turf/point-grid": "^6.5.0", - "@turf/point-on-feature": "^6.5.0", - "@turf/point-to-line-distance": "^6.5.0", - "@turf/points-within-polygon": "^6.5.0", - "@turf/polygon-smooth": "^6.5.0", - "@turf/polygon-tangents": "^6.5.0", - "@turf/polygon-to-line": "^6.5.0", - "@turf/polygonize": "^6.5.0", - "@turf/projection": "^6.5.0", - "@turf/random": "^6.5.0", - "@turf/rewind": "^6.5.0", - "@turf/rhumb-bearing": "^6.5.0", - "@turf/rhumb-destination": "^6.5.0", - "@turf/rhumb-distance": "^6.5.0", - "@turf/sample": "^6.5.0", - "@turf/sector": "^6.5.0", - "@turf/shortest-path": "^6.5.0", - "@turf/simplify": "^6.5.0", - "@turf/square": "^6.5.0", - "@turf/square-grid": "^6.5.0", - "@turf/standard-deviational-ellipse": "^6.5.0", - "@turf/tag": "^6.5.0", - "@turf/tesselate": "^6.5.0", - "@turf/tin": "^6.5.0", - "@turf/transform-rotate": "^6.5.0", - "@turf/transform-scale": "^6.5.0", - "@turf/transform-translate": "^6.5.0", - "@turf/triangle-grid": "^6.5.0", - "@turf/truncate": "^6.5.0", - "@turf/union": "^6.5.0", - "@turf/unkink-polygon": "^6.5.0", - "@turf/voronoi": "^6.5.0" - } - }, - "@turf/union": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/union/-/union-6.5.0.tgz", - "integrity": "sha512-igYWCwP/f0RFHIlC2c0SKDuM/ObBaqSljI3IdV/x71805QbIvY/BYGcJdyNcgEA6cylIGl/0VSlIbpJHZ9ldhw==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "polygon-clipping": "^0.15.3" - } - }, - "@turf/unkink-polygon": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/unkink-polygon/-/unkink-polygon-6.5.0.tgz", - "integrity": "sha512-8QswkzC0UqKmN1DT6HpA9upfa1HdAA5n6bbuzHy8NJOX8oVizVAqfEPY0wqqTgboDjmBR4yyImsdPGUl3gZ8JQ==", - "requires": { - "@turf/area": "^6.5.0", - "@turf/boolean-point-in-polygon": "^6.5.0", - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0", - "rbush": "^2.0.1" - } - }, - "@turf/voronoi": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/voronoi/-/voronoi-6.5.0.tgz", - "integrity": "sha512-C/xUsywYX+7h1UyNqnydHXiun4UPjK88VDghtoRypR9cLlb7qozkiLRphQxxsCM0KxyxpVPHBVQXdAL3+Yurow==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "d3-voronoi": "1.1.2" - } - }, - "@types/d3-ease": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.0.tgz", - "integrity": "sha512-aMo4eaAOijJjA6uU+GIeW018dvy9+oH5Y2VPPzjjfxevvGQ/oRDs+tfYC9b50Q4BygRR8yE2QCLsrT0WtAVseA==" - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "concaveman": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/concaveman/-/concaveman-1.2.0.tgz", - "integrity": "sha512-OcqechF2/kubbffomKqjGEkb0ndlYhEbmyg/fxIGqdfYp5AZjD2Kl5hc97Hh3ngEuHU2314Z4KDbxL7qXGWrQQ==", - "requires": { - "point-in-polygon": "^1.0.1", - "rbush": "^3.0.0", - "robust-predicates": "^2.0.4", - "tinyqueue": "^2.0.3" - }, - "dependencies": { - "quickselect": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", - "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==" - }, - "rbush": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/rbush/-/rbush-3.0.1.tgz", - "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==", - "requires": { - "quickselect": "^2.0.0" - } - } - } - }, - "d3-array": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", - "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" - }, - "d3-ease": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", - "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==" - }, - "d3-geo": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.7.1.tgz", - "integrity": "sha512-O4AempWAr+P5qbk2bC2FuN/sDW4z+dN2wDf9QV3bxQt4M5HfOEeXLgJ/UKQW0+o1Dj8BE+L5kiDbdWUMjsmQpw==", - "requires": { - "d3-array": "1" - } - }, - "d3-voronoi": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.2.tgz", - "integrity": "sha1-Fodmfo8TotFYyAwUgMWinLDYlzw=" - }, - "deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "requires": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - } - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "requires": { - "object-keys": "^1.0.12" - } - }, - "density-clustering": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/density-clustering/-/density-clustering-1.3.0.tgz", - "integrity": "sha1-3J9ZyPCrl+FiSsZJMP0xlIF9ysU=" - }, - "earcut": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.3.tgz", - "integrity": "sha512-iRDI1QeCQIhMCZk48DRDMVgQSSBDmbzzNhnxIo+pwx3swkfjMh6vh0nWLq1NdvGHLKH6wIrAM3vQWeTj6qeoug==" - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "geojson-equality": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/geojson-equality/-/geojson-equality-0.1.6.tgz", - "integrity": "sha1-oXE3TvBD5dR5eZWEC65GSOB1LXI=", - "requires": { - "deep-equal": "^1.0.0" - } - }, - "geojson-rbush": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/geojson-rbush/-/geojson-rbush-3.1.2.tgz", - "integrity": "sha512-grkfdg3HIeTjwTfiJe5FT8+fGU3fABCc+vRJDBwdQz9kkLF0Sbif2gs2JUzjewwgmnvLGy9fInySDeADoNuk7w==", - "requires": { - "@turf/bbox": "*", - "@turf/helpers": "6.x", - "@turf/meta": "6.x", - "rbush": "^2.0.0" - } - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" - }, - "is-arguments": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", - "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", - "requires": { - "call-bind": "^1.0.0" - } - }, - "is-date-object": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz", - "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==" - }, - "is-regex": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", - "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", - "requires": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.2" - } - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "point-in-polygon": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/point-in-polygon/-/point-in-polygon-1.1.0.tgz", - "integrity": "sha512-3ojrFwjnnw8Q9242TzgXuTD+eKiutbzyslcq1ydfu82Db2y+Ogbmyrkpv0Hgj31qwT3lbS9+QAAO/pIQM35XRw==" - }, - "polygon-clipping": { - "version": "0.15.3", - "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.3.tgz", - "integrity": "sha512-ho0Xx5DLkgxRx/+n4O74XyJ67DcyN3Tu9bGYKsnTukGAW6ssnuak6Mwcyb1wHy9MZc9xsUWqIoiazkZB5weECg==", - "requires": { - "splaytree": "^3.1.0" - } - }, - "quickselect": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-1.1.1.tgz", - "integrity": "sha512-qN0Gqdw4c4KGPsBOQafj6yj/PA6c/L63f6CaZ/DCF/xF4Esu3jVmKLUDYxghFx8Kb/O7y9tI7x2RjTSXwdK1iQ==" - }, - "rbush": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/rbush/-/rbush-2.0.2.tgz", - "integrity": "sha512-XBOuALcTm+O/H8G90b6pzu6nX6v2zCKiFG4BJho8a+bY6AER6t8uQUZdi5bomQc0AprCWhEGa7ncAbbRap0bRA==", - "requires": { - "quickselect": "^1.0.1" - } - }, - "regexp.prototype.flags": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", - "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "robust-predicates": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-2.0.4.tgz", - "integrity": "sha512-l4NwboJM74Ilm4VKfbAtFeGq7aEjWL+5kVFcmgFA2MrdnQWx9iE/tUGvxY5HyMI7o/WpSIUFLbC5fbeaHgSCYg==" - }, - "skmeans": { - "version": "0.9.7", - "resolved": "https://registry.npmjs.org/skmeans/-/skmeans-0.9.7.tgz", - "integrity": "sha512-hNj1/oZ7ygsfmPZ7ZfN5MUBRoGg1gtpnImuJBgLO0ljQ67DtJuiQaiYdS4lUA6s0KCwnPhGivtC/WRwIZLkHyg==" - }, - "splaytree": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz", - "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q==" - }, - "tinyqueue": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz", - "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==" - }, - "topojson-client": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", - "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==", - "requires": { - "commander": "2" - } - }, - "topojson-server": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/topojson-server/-/topojson-server-3.0.1.tgz", - "integrity": "sha512-/VS9j/ffKr2XAOjlZ9CgyyeLmgJ9dMwq6Y0YEON8O7p/tGGk+dCWnrE03zEdu7i4L7YsFZLEPZPzCvcB7lEEXw==", - "requires": { - "commander": "2" - } - }, - "turf-jsts": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/turf-jsts/-/turf-jsts-1.2.3.tgz", - "integrity": "sha512-Ja03QIJlPuHt4IQ2FfGex4F4JAr8m3jpaHbFbQrgwr7s7L6U8ocrHiF3J1+wf9jzhGKxvDeaCAnGDot8OjGFyA==" - } - } -} diff --git a/package.json b/package.json deleted file mode 100644 index 1a481968b..000000000 --- a/package.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "dependencies": { - "@turf/turf": "^6.5.0", - "@types/d3-ease": "^3.0.0", - "d3-ease": "^3.0.1" - } -}