From a7325f29c5e40db35642aa7629539d90335f29b7 Mon Sep 17 00:00:00 2001 From: Joshua Sant'Anna <45068597+jsakv@users.noreply.github.com> Date: Tue, 2 Jul 2024 16:04:14 +0200 Subject: [PATCH 01/41] refactor: Remove heroku deployment files --- Aptfile | 2 -- Procfile | 1 - 2 files changed, 3 deletions(-) delete mode 100644 Aptfile delete mode 100644 Procfile diff --git a/Aptfile b/Aptfile deleted file mode 100644 index 3590f35..0000000 --- a/Aptfile +++ /dev/null @@ -1,2 +0,0 @@ -libspatialindex-dev -python3-rtree diff --git a/Procfile b/Procfile deleted file mode 100644 index 91e5c97..0000000 --- a/Procfile +++ /dev/null @@ -1 +0,0 @@ -web: pip install -e . && pip install -r requirements-app.txt && uvicorn --reload --workers 1 --host 0.0.0.0 --port=${PORT:-5000} app.main:app From 339b5c34e18ac6633c54512505621aca640569fc Mon Sep 17 00:00:00 2001 From: Joshua Sant'Anna <45068597+jsakv@users.noreply.github.com> Date: Tue, 2 Jul 2024 16:09:24 +0200 Subject: [PATCH 02/41] refactor: Remove DVC CML pipelines --- .dvc/.gitignore | 3 -- .dvc/config | 6 ---- .dvcignore | 3 -- dags/dvc/predict/dvc.lock | 11 ------- dags/dvc/predict/dvc.yaml | 10 ------- dags/dvc/train/dvc.lock | 61 --------------------------------------- dags/dvc/train/dvc.yaml | 36 ----------------------- 7 files changed, 130 deletions(-) delete mode 100644 .dvc/.gitignore delete mode 100644 .dvc/config delete mode 100644 .dvcignore delete mode 100644 dags/dvc/predict/dvc.lock delete mode 100644 dags/dvc/predict/dvc.yaml delete mode 100644 dags/dvc/train/dvc.lock delete mode 100644 dags/dvc/train/dvc.yaml diff --git a/.dvc/.gitignore b/.dvc/.gitignore deleted file mode 100644 index 528f30c..0000000 --- a/.dvc/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -/config.local -/tmp -/cache diff --git a/.dvc/config b/.dvc/config deleted file mode 100644 index 432e549..0000000 --- a/.dvc/config +++ /dev/null @@ -1,6 +0,0 @@ -['remote "artifacts-registry"'] - url = gdrive://1fyD6xyuWWhyjNPoCiCazKshp0yJ8xKs9 - gdrive_use_service_account = true - gdrive_service_account_json_file_path = tmp/credentials.json -[core] - remote = artifacts-registry \ No newline at end of file diff --git a/.dvcignore b/.dvcignore deleted file mode 100644 index 5197305..0000000 --- a/.dvcignore +++ /dev/null @@ -1,3 +0,0 @@ -# Add patterns of files dvc should ignore, which could improve -# the performance. Learn more at -# https://dvc.org/doc/user-guide/dvcignore diff --git a/dags/dvc/predict/dvc.lock b/dags/dvc/predict/dvc.lock deleted file mode 100644 index a91248e..0000000 --- a/dags/dvc/predict/dvc.lock +++ /dev/null @@ -1,11 +0,0 @@ -schema: '2.0' -stages: - download: - cmd: pyrorisks download inputs --day 2020-05-05 - predict: - cmd: pyrorisks predict --day 2020-05-05 - outs: - - path: .cache/predictions_registry - md5: d9926db4f35854aa453bcf54e9aa394e.dir - size: 12414168 - nfiles: 3 diff --git a/dags/dvc/predict/dvc.yaml b/dags/dvc/predict/dvc.yaml deleted file mode 100644 index 5b2b800..0000000 --- a/dags/dvc/predict/dvc.yaml +++ /dev/null @@ -1,10 +0,0 @@ -stages: - download: - wdir: ../../../ - cmd: pyrorisks download inputs --day 2020-05-05 - - predict: - wdir: ../../../ - cmd: pyrorisks predict --day 2020-05-05 - outs: - - .cache/predictions_registry diff --git a/dags/dvc/train/dvc.lock b/dags/dvc/train/dvc.lock deleted file mode 100644 index 7209457..0000000 --- a/dags/dvc/train/dvc.lock +++ /dev/null @@ -1,61 +0,0 @@ -schema: '2.0' -stages: - download: - cmd: pyrorisks download - deps: - - path: pyro_risks/pipeline/load.py - md5: d0d749f7b2c050296d98f23f93783dac - size: 2060 - outs: - - path: .cache/data_registry/merged_era_viirs.csv - md5: ac964a338a6cdddce2fdd4f1847f173a - size: 83716501 - train_xgboost: - cmd: pyrorisks train --model XGBOOST --destination .cache/model_registry - deps: - - path: .cache/data_registry/merged_era_viirs.csv - md5: ac964a338a6cdddce2fdd4f1847f173a - size: 83716501 - - path: pyro_risks/pipeline/train.py - md5: 2072ca8311d7bb9105e9210e7cd61b5a - size: 5224 - outs: - - path: .cache/model_registry/XGBOOST.joblib - md5: a5f6213848af99db0d8030c4e7ac4b59 - size: 1817148 - train_rf: - cmd: pyrorisks train --model RF --destination .cache/model_registry - deps: - - path: .cache/data_registry/merged_era_viirs.csv - md5: ac964a338a6cdddce2fdd4f1847f173a - size: 83716501 - - path: pyro_risks/pipeline/train.py - md5: 2072ca8311d7bb9105e9210e7cd61b5a - size: 5224 - outs: - - path: .cache/model_registry/RF.joblib - md5: 64a825e6a9ea80345beec0ced6ef4dd4 - size: 11947436 - evaluate: - cmd: "pyrorisks evaluate --pipeline .cache/model_registry/RF.joblib --threshold\ - \ .cache/model_registry/RF_threshold.json --prefix RF --destination .cache/metadata_registry\ - \ \npyrorisks evaluate --pipeline .cache/model_registry/XGBOOST.joblib --threshold\ - \ .cache/model_registry/XGBOOST_threshold.json --prefix XGBOOST --destination\ - \ .cache/metadata_registry\n" - deps: - - path: .cache/model_registry/RF.joblib - md5: 64a825e6a9ea80345beec0ced6ef4dd4 - size: 11947436 - - path: .cache/model_registry/XGBOOST.joblib - md5: a5f6213848af99db0d8030c4e7ac4b59 - size: 1817148 - - path: pyro_risks/pipeline/train.py - md5: 2072ca8311d7bb9105e9210e7cd61b5a - size: 5224 - outs: - - path: .cache/metadata_registry/RF_classification_report.json - md5: 47d86b5779e035dc9ff38d38330cd9fd - size: 237 - - path: .cache/metadata_registry/XGBOOST_classification_report.json - md5: 137fe7ce77c7dc4fdc948e11885f5557 - size: 237 diff --git a/dags/dvc/train/dvc.yaml b/dags/dvc/train/dvc.yaml deleted file mode 100644 index cbd5d17..0000000 --- a/dags/dvc/train/dvc.yaml +++ /dev/null @@ -1,36 +0,0 @@ -stages: - download: - wdir: ../../../ - cmd: pyrorisks download dataset - deps: - - pyro_risks/pipeline/load.py - outs: - - .cache/data_registry/merged_era_viirs.csv - train_xgboost: - wdir: ../../../ - cmd: pyrorisks train --model XGBOOST --destination .cache/model_registry - deps: - - pyro_risks/pipeline/train.py - - .cache/data_registry/merged_era_viirs.csv - outs: - - .cache/model_registry/XGBOOST.joblib - train_rf: - wdir: ../../../ - cmd: pyrorisks train --model RF --destination .cache/model_registry - deps: - - pyro_risks/pipeline/train.py - - .cache/data_registry/merged_era_viirs.csv - outs: - - .cache/model_registry/RF.joblib - evaluate: - wdir: ../../../ - cmd: | - pyrorisks evaluate --pipeline .cache/model_registry/RF.joblib --threshold .cache/model_registry/RF_threshold.json --prefix RF --destination .cache/metadata_registry - pyrorisks evaluate --pipeline .cache/model_registry/XGBOOST.joblib --threshold .cache/model_registry/XGBOOST_threshold.json --prefix XGBOOST --destination .cache/metadata_registry - deps: - - pyro_risks/pipeline/train.py - - .cache/model_registry/XGBOOST.joblib - - .cache/model_registry/RF.joblib - metrics: - - .cache/metadata_registry/XGBOOST_classification_report.json - - .cache/metadata_registry/RF_classification_report.json From 4db972a5512ab009dcf99e29cc0eabddceb3d5b6 Mon Sep 17 00:00:00 2001 From: Joshua Sant'Anna <45068597+jsakv@users.noreply.github.com> Date: Tue, 2 Jul 2024 16:19:07 +0200 Subject: [PATCH 03/41] chore: Remove notebooks from package --- {pyro_risks/notebooks => notebooks}/EFFIS FWI formatting.ipynb | 0 {pyro_risks/notebooks => notebooks}/requetes_apis.ipynb | 0 {pyro_risks/notebooks => notebooks}/s3_tutorial.ipynb | 0 {pyro_risks/notebooks => notebooks}/tif_explorer.ipynb | 0 4 files changed, 0 insertions(+), 0 deletions(-) rename {pyro_risks/notebooks => notebooks}/EFFIS FWI formatting.ipynb (100%) rename {pyro_risks/notebooks => notebooks}/requetes_apis.ipynb (100%) rename {pyro_risks/notebooks => notebooks}/s3_tutorial.ipynb (100%) rename {pyro_risks/notebooks => notebooks}/tif_explorer.ipynb (100%) diff --git a/pyro_risks/notebooks/EFFIS FWI formatting.ipynb b/notebooks/EFFIS FWI formatting.ipynb similarity index 100% rename from pyro_risks/notebooks/EFFIS FWI formatting.ipynb rename to notebooks/EFFIS FWI formatting.ipynb diff --git a/pyro_risks/notebooks/requetes_apis.ipynb b/notebooks/requetes_apis.ipynb similarity index 100% rename from pyro_risks/notebooks/requetes_apis.ipynb rename to notebooks/requetes_apis.ipynb diff --git a/pyro_risks/notebooks/s3_tutorial.ipynb b/notebooks/s3_tutorial.ipynb similarity index 100% rename from pyro_risks/notebooks/s3_tutorial.ipynb rename to notebooks/s3_tutorial.ipynb diff --git a/pyro_risks/notebooks/tif_explorer.ipynb b/notebooks/tif_explorer.ipynb similarity index 100% rename from pyro_risks/notebooks/tif_explorer.ipynb rename to notebooks/tif_explorer.ipynb From c39bdec842fa4101a5607954dd0a3bae19818bc3 Mon Sep 17 00:00:00 2001 From: Joshua Sant'Anna <45068597+jsakv@users.noreply.github.com> Date: Tue, 2 Jul 2024 16:25:15 +0200 Subject: [PATCH 04/41] refactor: Deprecate pyro_risks modules --- pyro_risks/config/__init__.py | 2 - pyro_risks/config/datasets.py | 147 -------- pyro_risks/config/models.py | 145 -------- pyro_risks/datasets/ERA5.py | 218 ----------- pyro_risks/datasets/__init__.py | 7 - pyro_risks/datasets/datasets_mergers.py | 249 ------------- pyro_risks/datasets/era_fwi_viirs.py | 165 --------- pyro_risks/datasets/fwi.py | 258 ------------- pyro_risks/datasets/masks.py | 29 -- pyro_risks/datasets/nasa_wildfires.py | 243 ------------- pyro_risks/datasets/queries_api.py | 464 ------------------------ pyro_risks/datasets/utils.py | 370 ------------------- pyro_risks/datasets/weather.py | 80 ---- pyro_risks/datasets/wildfires.py | 43 --- pyro_risks/models/__init__.py | 3 - pyro_risks/models/pipelines.py | 49 --- pyro_risks/models/transformers.py | 349 ------------------ pyro_risks/models/utils.py | 67 ---- pyro_risks/pipeline/__init__.py | 4 - pyro_risks/pipeline/evaluate.py | 165 --------- pyro_risks/pipeline/load.py | 64 ---- pyro_risks/pipeline/predict.py | 269 -------------- pyro_risks/pipeline/train.py | 159 -------- setup.py | 70 ---- 24 files changed, 3619 deletions(-) delete mode 100644 pyro_risks/config/__init__.py delete mode 100644 pyro_risks/config/datasets.py delete mode 100644 pyro_risks/config/models.py delete mode 100644 pyro_risks/datasets/ERA5.py delete mode 100644 pyro_risks/datasets/__init__.py delete mode 100644 pyro_risks/datasets/datasets_mergers.py delete mode 100644 pyro_risks/datasets/era_fwi_viirs.py delete mode 100644 pyro_risks/datasets/fwi.py delete mode 100644 pyro_risks/datasets/masks.py delete mode 100644 pyro_risks/datasets/nasa_wildfires.py delete mode 100644 pyro_risks/datasets/queries_api.py delete mode 100644 pyro_risks/datasets/utils.py delete mode 100644 pyro_risks/datasets/weather.py delete mode 100644 pyro_risks/datasets/wildfires.py delete mode 100644 pyro_risks/models/__init__.py delete mode 100644 pyro_risks/models/pipelines.py delete mode 100644 pyro_risks/models/transformers.py delete mode 100644 pyro_risks/models/utils.py delete mode 100644 pyro_risks/pipeline/__init__.py delete mode 100644 pyro_risks/pipeline/evaluate.py delete mode 100644 pyro_risks/pipeline/load.py delete mode 100644 pyro_risks/pipeline/predict.py delete mode 100644 pyro_risks/pipeline/train.py delete mode 100644 setup.py diff --git a/pyro_risks/config/__init__.py b/pyro_risks/config/__init__.py deleted file mode 100644 index 4e943a6..0000000 --- a/pyro_risks/config/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -from .datasets import * -from .models import * diff --git a/pyro_risks/config/datasets.py b/pyro_risks/config/datasets.py deleted file mode 100644 index 158c181..0000000 --- a/pyro_risks/config/datasets.py +++ /dev/null @@ -1,147 +0,0 @@ -# Copyright (C) 2021-2022, Pyronear. - -# This program is licensed under the Apache License version 2. -# See LICENSE or go to for full license details. - -import os -from dotenv import load_dotenv - -# If there is an .env, load it -load_dotenv() - -FR_GEOJSON: str = "https://france-geojson.gregoiredavid.fr/repo/departements.geojson" -DATA_FALLBACK: str = ( - "https://github.com/pyronear/pyro-risks/releases/download/v0.1.0-data" -) -FR_GEOJSON_FALLBACK: str = f"{DATA_FALLBACK}/departements.geojson" -FR_FIRES_FALLBACK: str = f"{DATA_FALLBACK}/export_BDIFF_incendies_20201027.csv" -FR_WEATHER_FALLBACK: str = f"{DATA_FALLBACK}/noaa_weather_20201025.csv" -FR_NASA_FIRMS_FALLBACK: str = f"{DATA_FALLBACK}/NASA_FIRMS.json" -FR_NASA_VIIRS_FALLBACK: str = f"{DATA_FALLBACK}/NASA_FIRMS_VIIRS_2018_2020.csv" -FR_FWI_2019_FALLBACK: str = f"{DATA_FALLBACK}/JRC_FWI_2019.zip" -FR_FWI_2020_FALLBACK: str = f"{DATA_FALLBACK}/JRC_FWI_2020.zip" -FR_ERA5LAND_FALLBACK: str = f"{DATA_FALLBACK}/ERA5_2019.nc" -FR_ERA5T_FALLBACK: str = f"{DATA_FALLBACK}/era5t_2019.nc" -DATASET: str = "merged_era_viirs.csv" -ERA5T_VIIRS_PIPELINE: str = f"{DATA_FALLBACK}/merged_era_viirs.csv" -TEST_FR_ERA5LAND_FALLBACK: str = f"{DATA_FALLBACK}/test_data_ERA5_2018.nc" -TEST_FR_FIRMS_CSV_FALLBACK: str = f"{DATA_FALLBACK}/test_data_FIRMS.csv" -TEST_FR_FIRMS_XLSX_FALLBACK: str = f"{DATA_FALLBACK}/test_data_FIRMS.xlsx" -TEST_FR_VIIRS_XLSX_FALLBACK: str = f"{DATA_FALLBACK}/test_data_VIIRS.xlsx" -TEST_FR_VIIRS_JSON_FALLBACK: str = f"{DATA_FALLBACK}/test_data_VIIRS.json" -TEST_FR_ERA5_2019_FALLBACK: str = f"{DATA_FALLBACK}/test_data_ERA5_2019.nc" -TEST_FR_ERA5T_FALLBACK: str = f"{DATA_FALLBACK}/test_era5t_to_merge.nc" -TEST_FWI_FALLBACK: str = f"{DATA_FALLBACK}/test_data_FWI.csv" -TEST_FWI_TO_PREDICT: str = f"{DATA_FALLBACK}/fwi_test_to_predict.csv" -TEST_ERA_TO_PREDICT: str = f"{DATA_FALLBACK}/era_test_to_predict.csv" - -REPO_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), "../../")) -ROOT_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), "../")) - - -CDS_URL = "https://cds.climate.copernicus.eu/api/v2" -CDS_UID = os.getenv("CDS_UID") -CDS_API_KEY = os.getenv("CDS_API_KEY") - -RFMODEL_PATH_FALLBACK: str = f"{DATA_FALLBACK}/pyrorisk_rfc_111220.pkl" -RFMODEL_ERA5T_PATH_FALLBACK: str = f"{DATA_FALLBACK}/pyrorisk_rfc_era5t_151220.pkl" -XGBMODEL_PATH_FALLBACK: str = f"{DATA_FALLBACK}/pyrorisk_xgb_091220.pkl" -XGBMODEL_ERA5T_PATH_FALLBACK: str = f"{DATA_FALLBACK}/pyrorisk_xgb_era5t_151220.pkl" - -FWI_VARS = ["fwi", "ffmc", "dmc", "dc", "isi", "bui", "dsr"] - -WEATHER_VARS = [ - "u10", - "v10", - "d2m", - "t2m", - "fal", - "lai_hv", - "lai_lv", - "skt", - "asn", - "snowc", - "rsn", - "sde", - "sd", - "sf", - "smlt", - "stl1", - "stl2", - "stl3", - "stl4", - "slhf", - "ssr", - "str", - "sp", - "sshf", - "ssrd", - "strd", - "tsn", - "tp", -] - -WEATHER_ERA5T_VARS = [ - "asn", - "d2m", - "e", - "es", - "fal", - "lai_hv", - "lai_lv", - "lblt", - "licd", - "lict", - "lmld", - "lmlt", - "lshf", - "ltlt", - "pev", - "ro", - "rsn", - "sd", - "sf", - "skt", - "slhf", - "smlt", - "sp", - "src", - "sro", - "sshf", - "ssr", - "ssrd", - "ssro", - "stl1", - "stl2", - "stl3", - "stl4", - "str", - "strd", - "swvl1", - "swvl2", - "swvl3", - "swvl4", - "t2m", - "tp", - "tsn", - "u10", - "v10", -] - -CACHE_FOLDER: str = "./.cache/" - -DATA_REGISTRY = os.path.join(CACHE_FOLDER, "data_registry/") -MODEL_REGISTRY = os.path.join(CACHE_FOLDER, "model_registry/") -METADATA_REGISTRY = os.path.join(CACHE_FOLDER, "metadata_registry/") -PREDICTIONS_REGISTRY = os.path.join(CACHE_FOLDER, "predictions_registry/") - -DATASET_PATH = os.path.join(DATA_REGISTRY, DATASET) -PIPELINE_INPUT_PATH = os.path.join(PREDICTIONS_REGISTRY, "pipeline_inputs.csv") -RFMODEL_ERA5T_PATH = os.path.join(MODEL_REGISTRY, "RF.joblib") -XGBMODEL_ERA5T_PATH = os.path.join(MODEL_REGISTRY, "XGBOOST.joblib") - -os.makedirs(CACHE_FOLDER, exist_ok=True) -os.makedirs(DATA_REGISTRY, exist_ok=True) -os.makedirs(MODEL_REGISTRY, exist_ok=True) -os.makedirs(METADATA_REGISTRY, exist_ok=True) -os.makedirs(PREDICTIONS_REGISTRY, exist_ok=True) diff --git a/pyro_risks/config/models.py b/pyro_risks/config/models.py deleted file mode 100644 index d78fe1a..0000000 --- a/pyro_risks/config/models.py +++ /dev/null @@ -1,145 +0,0 @@ -# Copyright (C) 2021-2022, Pyronear. - -# This program is licensed under the Apache License version 2. -# See LICENSE or go to for full license details. - -ZONE_VAR = "departement" - -DATE_VAR = "day" - -TARGET = "fires" - -PIPELINE_ERA5T_VARS = [ - "strd_min", - "isi_min", - "strd_max", - "d2m_mean", - "lai_hv_mean", - "str_mean", - "ffmc_mean", - "strd_mean", - "swvl1_mean", - "asn_min", - "fwi_mean", - "asn_std", - "ssr_mean", - "str_max", - "d2m_min", - "rsn_std", - "ssrd_min", - "isi_mean", - "ssrd_mean", - "isi_max", - "ffmc_max", - "ffmc_min", - "ssr_min", - "str_min", - "ffmc_std", -] - -MODEL_ERA5T_VARS = [ - "str_max", - "str_mean", - "ffmc_min", - "str_min", - "ffmc_mean", - "str_mean_lag1", - "str_max_lag1", - "str_min_lag1", - "isi_min", - "ffmc_min_lag1", - "isi_mean", - "ffmc_mean_lag1", - "ffmc_std", - "ffmc_max", - "isi_min_lag1", - "isi_mean_lag1", - "ffmc_max_lag1", - "asn_std", - "strd_max", - "ssrd_min", - "strd_mean", - "isi_max", - "strd_min", - "d2m_min", - "asn_min", - "ssr_min", - "ffmc_min_lag3", - "ffmc_std_lag1", - "lai_hv_mean_lag7", - "str_max_lag3", - "str_mean_lag3", - "rsn_std_lag1", - "fwi_mean", - "ssr_mean", - "ssrd_mean", - "swvl1_mean", - "rsn_std_lag3", - "isi_max_lag1", - "d2m_mean", - "rsn_std", -] - -SELECTED_DEP = [ - "Aisne", - "Alpes-Maritimes", - "Ardèche", - "Ariège", - "Aude", - "Aveyron", - "Cantal", - "Eure", - "Eure-et-Loir", - "Gironde", - "Haute-Corse", - "Hautes-Pyrénées", - "Hérault", - "Indre", - "Landes", - "Loiret", - "Lozère", - "Marne", - "Oise", - "Pyrénées-Atlantiques", - "Pyrénées-Orientales", - "Sarthe", - "Somme", - "Yonne", -] - -LAG_ERA5T_VARS = ["_".join(x.split("_")[:-1]) for x in MODEL_ERA5T_VARS if "_lag" in x] - -USECOLS = [DATE_VAR, ZONE_VAR, TARGET] + PIPELINE_ERA5T_VARS - -PIPELINE_COLS = [DATE_VAR, ZONE_VAR] + PIPELINE_ERA5T_VARS - -TEST_SIZE = 0.2 - -RANDOM_STATE = 42 - -RF_PARAMS = { - "n_estimators": 500, - "min_samples_leaf": 10, - "max_features": "sqrt", - "class_weight": "balanced", - "criterion": "gini", - "random_state": 10, - "n_jobs": -1, - "verbose": 3, -} - -XGB_PARAMS = { - "n_estimators": 1000, - "max_depth": 10, - "learning_rate": 0.01, - "min_child_weight": 10, - "subsample": 0.8, - "colsample_bytree": 0.8, - "objective": "binary:logistic", - "random_state": 10, - "n_jobs": -1, - "verbosity": 2, -} - - -XGB_FIT_PARAMS = {"early_stopping_rounds": 50, "eval_metric": ["logloss", "aucpr"]} diff --git a/pyro_risks/datasets/ERA5.py b/pyro_risks/datasets/ERA5.py deleted file mode 100644 index 1b3a7b2..0000000 --- a/pyro_risks/datasets/ERA5.py +++ /dev/null @@ -1,218 +0,0 @@ -# Copyright (C) 2021-2022, Pyronear. - -# This program is licensed under the Apache License version 2. -# See LICENSE or go to for full license details. - -import logging -from typing import Optional - -import os -import geopandas as gpd -import pandas as pd -import numpy as np -import requests -import xarray as xr -import tempfile - -from pyro_risks import config as cfg -from .masks import get_french_geom -from pyro_risks.datasets.queries_api import call_era5land, call_era5t - - -__all__ = ["ERA5Land", "ERA5T"] - - -def get_data_era5land_for_predict(date: str) -> pd.DataFrame: - """ - Get ERA5Land dataframe for given date using call to cdsapi - and appropriate class. - ​ - Args: - date: str - Date with the following format: "YEAR-MONTH-DAY" eg. "2020-05-12" - ​ - Returns: pd.DataFrame - Dataframe containing ERA5 Land data for the requested day. - """ - with tempfile.TemporaryDirectory() as tmp: - year, month, day = date.split("-") - call_era5land(tmp, year, month, day) - # TODO: make sure that the directory works when on server - data = ERA5Land( - source_path=os.path.join(tmp, f"era5land_{year}_{month}_{day}.nc") - ) - - # Lag J-1 - lag = np.datetime64(date) - np.timedelta64(1, "D") - year, month, day = str(lag).split("-") - call_era5land(tmp, year, month, day) - dataJ1 = ERA5Land( - source_path=os.path.join(tmp, f"era5land_{year}_{month}_{day}.nc") - ) - - # Lag J-3 - lag = np.datetime64(date) - np.timedelta64(3, "D") - year, month, day = str(lag).split("-") - call_era5land(tmp, year, month, day) - dataJ3 = ERA5Land( - source_path=os.path.join(tmp, f"era5land_{year}_{month}_{day}.nc") - ) - - # Lag J-7 - lag = np.datetime64(date) - np.timedelta64(7, "D") - year, month, day = str(lag).split("-") - call_era5land(tmp, year, month, day) - dataJ7 = ERA5Land( - source_path=os.path.join(tmp, f"era5land_{year}_{month}_{day}.nc") - ) - - merged_data = pd.concat([data, dataJ1, dataJ3, dataJ7], ignore_index=True) - return merged_data - - -def get_data_era5t_for_predict(date: str) -> pd.DataFrame: - """ - Get ERA5T dataframe for given date using call to cdsapi - and appropriate class. - ​ - Args: - date: str - Date with the following format: "YEAR-MONTH-DAY" eg. "2020-05-12" - ​ - Returns: pd.DataFrame - Dataframe containing ERA5T data for the requested day. - """ - with tempfile.TemporaryDirectory() as tmp: - year, month, day = date.split("-") - call_era5t(tmp, year, month, day) - # TODO: make sure that the directory works when on server - data = ERA5T(source_path=os.path.join(tmp, f"era5t_{year}_{month}_{day}.nc")) - # Lag J-1 - lag = np.datetime64(f"{year}-{month}-{day}") - np.timedelta64(1, "D") - year, month, day = str(lag).split("-") - call_era5t(tmp, year, month, day) - dataJ1 = ERA5T(source_path=os.path.join(tmp, f"era5t_{year}_{month}_{day}.nc")) - # Lag J-3 - lag = np.datetime64(f"{year}-{month}-{day}") - np.timedelta64(3, "D") - year, month, day = str(lag).split("-") - call_era5t(tmp, year, month, day) - dataJ3 = ERA5T(source_path=os.path.join(tmp, f"era5t_{year}_{month}_{day}.nc")) - # Lag J-7 - lag = np.datetime64(f"{year}-{month}-{day}") - np.timedelta64(7, "D") - year, month, day = str(lag).split("-") - call_era5t(tmp, year, month, day) - dataJ7 = ERA5T(source_path=os.path.join(tmp, f"era5t_{year}_{month}_{day}.nc")) - merged_data = pd.concat([data, dataJ1, dataJ3, dataJ7], ignore_index=True) - return merged_data - - -class ERA5Land(pd.DataFrame): - """Provides ERA5-Land clean dataset as a pandas dataframe. - - ERA5-Land is a reanalysis dataset providing a consistent view of the evolution of land variables - over several decades at an enhanced resolution compared to ERA5. ERA5-Land uses as input to - control the simulated land fields ERA5 atmospheric variables, such as air temperature and air humidity. - Using cdaspi https://pypi.org/project/cdsapi/ with access key, the user can get the dataset - at https://cds.climate.copernicus.eu/cdsapp#!/dataset/reanalysis-era5-land?tab=overview - - The provided dataset has to be in netCDF4 format here. - - Args: - source_path: str - Path or URL to your version of the source data - """ - - def __init__(self, source_path: Optional[str] = None) -> None: - """ - Args: - source_path: Optional[str] - Path or URL to your version of the source data - """ - if not isinstance(source_path, str): - # Download in cache - logging.warning( - f"No data source specified for {self.__class__.__name__}, trying fallback." - ) - source_path = cfg.FR_ERA5LAND_FALLBACK - - if source_path.startswith("http"): - with requests.get(source_path) as resp: - ds = xr.open_dataset(resp.content) - data = ds.to_dataframe() - else: - ds = xr.open_dataset(source_path) - data = ds.to_dataframe() - - # Drop NaNs which correspond to no land - data = data.dropna() - data = data.reset_index() - - data["time"] = pd.to_datetime( - data["time"], format="%Y-%m-%d %H:%M:%S", errors="coerce" - ) - data["time"] = data["time"].dt.normalize() - - # Transform into geopandas dataframe - geo_data = gpd.GeoDataFrame( - data, - geometry=gpd.points_from_xy(data["longitude"], data["latitude"]), - crs="EPSG:4326", - ) - - # Match the polygons using the ones of each predefined country area - geo_masks = get_french_geom() - geo_df = gpd.sjoin(geo_masks, geo_data, how="inner") - super().__init__(geo_df.drop(["index_right", "geometry"], axis=1)) - - -class ERA5T(pd.DataFrame): - """Provides ERA5T clean dataset as a pandas dataframe. - - The provided dataset has to be in netCDF4 format here. - - Args: - source_path: str - Path or URL to your version of the source data - """ - - def __init__(self, source_path: Optional[str] = None) -> None: - """ - Args: - source_path: Optional[str] - Path or URL to your version of the source data - """ - if not isinstance(source_path, str): - # Download in cache - logging.warning( - f"No data source specified for {self.__class__.__name__}, trying fallback." - ) - source_path = cfg.FR_ERA5T_FALLBACK - - if source_path.startswith("http"): - with requests.get(source_path) as resp: - ds = xr.open_dataset(resp.content) - data = ds.to_dataframe() - else: - ds = xr.open_dataset(source_path) - data = ds.to_dataframe() - - # Drop columns with NaNs - data = data.dropna(axis=1) - data = data.reset_index() - - data["time"] = pd.to_datetime( - data["time"], format="%Y-%m-%d %H:%M:%S", errors="coerce" - ) - data["time"] = data["time"].dt.normalize() - - # Transform into geopandas dataframe - geo_data = gpd.GeoDataFrame( - data, - geometry=gpd.points_from_xy(data["longitude"], data["latitude"]), - crs="EPSG:4326", - ) - - # Match the polygons using the ones of each predefined country area - geo_masks = get_french_geom() - geo_df = gpd.sjoin(geo_masks, geo_data, how="inner") - super().__init__(geo_df.drop(["index_right", "geometry"], axis=1)) diff --git a/pyro_risks/datasets/__init__.py b/pyro_risks/datasets/__init__.py deleted file mode 100644 index 29ac9cf..0000000 --- a/pyro_risks/datasets/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -from .nasa_wildfires import * -from .weather import * -from .wildfires import * -from .masks import * -from .ERA5 import * -from .era_fwi_viirs import * -from . import utils diff --git a/pyro_risks/datasets/datasets_mergers.py b/pyro_risks/datasets/datasets_mergers.py deleted file mode 100644 index 3401948..0000000 --- a/pyro_risks/datasets/datasets_mergers.py +++ /dev/null @@ -1,249 +0,0 @@ -# Copyright (C) 2021-2022, Pyronear. - -# This program is licensed under the Apache License version 2. -# See LICENSE or go to for full license details. - -import pandas as pd - -from .utils import ( - find_closest_weather_station, - find_closest_location, - get_nearest_points, -) - - -def merge_datasets_by_departements( - dataframe1: pd.DataFrame, - time_col1: str, - geometry_col1: str, - dataframe2: pd.DataFrame, - time_col2: str, - geometry_col2: str, - how: str, -) -> pd.DataFrame: - """ - Merge two datasets containing some kind of geometry and date columns. - The merge is down on [time_col1, time_col2] and [geometry_col1, geometry_col2]. - Here the geometry is based on French departements. Therefore the geometry columns - should contains either the code on the departement or its geometry (should be - consistent throughout both datasets). - - Finally the merge is done according to the `how` parameter. Keep me mind that - this parameter must be so that the merged dataframe keeps similar dimensions to the - weather dataframe. This is because if there is an inner join, we will keep only the days - where wildfires were declared. Therefore if the weather dataframe is the left frame, then - `how` must be left, if it is the right frame, `how` must be right. - - Args: - dataframe1: pd.DataFrame - First dataframe, containing a time column and a geometry one. - time_col1: str - Name of the time column of dataframe1 on which the merge will be done. - geometry_col1: str - Name of the geometry column of dataframe1 on which the merge will be done. - dataframe2: pd.DataFrame - Second dataframe, containing a time column and a geometry one. - time_col2: str - Name of the time column of dataframe2 on which the merge will be done. - geometry_col2: str - Name of the geometry column of dataframe2 on which the merge will be done. - how: - Parameter of the merge, should correspond to which of the left or right frame - the weather dataframe is. - - Returns: pd.DataFrame - Merged dataset on French departement. - """ - merged_data = pd.merge( - dataframe1, - dataframe2, - left_on=[time_col1, geometry_col1], - right_on=[time_col2, geometry_col2], - how=how, - ) - return merged_data - - -def merge_datasets_by_closest_weather_station( - df_weather: pd.DataFrame, - time_col_weather: str, - df_fires: pd.DataFrame, - time_col_fires: str, -) -> pd.DataFrame: - """ - Merge two datasets: one of weather conditions and the other of wildfires history data. - Each dataset must contain a time column, and the weather dataset must have a `STATION` - column which allows to identify uniquely each station. The merge is done by finding the - closest weather station to each (lat, lon) point of the wildfires history dataset. The - latter is then grouped by date and closest_weather_station, which then allows to join it - with the weather conditions dataframe. - - Args: - df_weather: pd.DataFrame - Weather conditions dataframe. Must have a `STATION` column to identify each - weather station. - time_col_weather: str - Name of the time column in `df_weather`. - df_fires: pd.DataFrame - Wildfires history dataset, must have points described by their latitude and - longitude. - time_col_fires: str - Name of the time column in `df_fires`. - - Returns: pd.DataFrame - Merged dataset by weather station proximity. - """ - # For wildfires dataframe, need to find for each point the closest weather station - df_fires["closest_weather_station"] = df_fires.apply( - lambda row: find_closest_weather_station( - df_weather, row["latitude"], row["longitude"] - ), - axis=1, - ) - - grouped_fires = ( - df_fires.groupby(["closest_weather_station", "acq_date"], observed=True) - .first() - .reset_index() - ) - - merged_data = pd.merge( - df_weather, - grouped_fires, - left_on=[time_col_weather, "STATION"], - right_on=[time_col_fires, "closest_weather_station"], - how="left", - ) - return merged_data - - -def merge_datasets_by_closest_weather_point( - df_weather: pd.DataFrame, - time_col_weather: str, - df_fires: pd.DataFrame, - time_col_fires: str, -) -> pd.DataFrame: - """ - Merge weather and fire datasets when the weather dataset is provided using satellite - data such as ERA5 Land hourly dataset provided here - https://cds.climate.copernicus.eu/cdsapp#!/dataset/reanalysis-era5-land?tab=form - and accessible through cdsapi. - - Args: - df_weather: pd.DataFrame - Weather conditions dataframe, must have "latitude" and "longitude" columns. - time_col_weather: str - Name of the time column in `df_weather`. - df_fires: pd.DataFrame - Wildfires history dataset, must have points described by their latitude and - longitude. - time_col_fires: str - Name of the time column in `df_fires`. - - Returns: pd.DataFrame - Merged dataset by weather station proximity. - """ - # For wildfires dataframe, need to find for each point the closest weather station - df_fires["closest_weather_point"] = df_fires.apply( - lambda row: find_closest_location( - df_weather, row["latitude"], row["longitude"] - ), - axis=1, - ) - - grouped_fires = ( - df_fires.groupby(["closest_weather_point", "acq_date"], observed=True) - .first() - .reset_index() - ) - - grouped_fires["weather_lat"], grouped_fires["weather_lon"] = ( - grouped_fires["closest_weather_point"].str[0], - grouped_fires["closest_weather_point"].str[1], - ) - - merged_data = pd.merge( - df_weather, - grouped_fires, - left_on=[time_col_weather, "latitude", "longitude"], - right_on=[time_col_fires, "weather_lat", "weather_lon"], - how="left", - ) - return merged_data - - -def merge_by_proximity( - df_left: pd.DataFrame, - time_col_left: str, - df_right: pd.DataFrame, - time_col_right: str, - how: str, -) -> pd.DataFrame: - """ - Merge df_left and df_right by finding in among all points in df_left, the closest point in df_right. - For instance, df_left can be a history wildfires dataset and df_right a weather conditions datasets and - we want to match each wildfire with its closest weather point. - This can also be used if, for instance, we want to merge FWI dataset (df_left) with ERA5/VIIRS datatset - (df_right). - - Args: - df_left: pd.DataFrame - Left dataframe, must have "latitude" and "longitude" columns. - time_col_left: str - Name of the time column in `df_left`. - df_right: pd.DataFrame - Right dataset, must have points described by their latitude and - longitude. - time_col_right: str - Name of the time column in `df_right`. - how: str - How the pandas merge needs to be done. - - Returns: - Merged dataset by point (lat/lon) proximity. - """ - # get all df_right points in adequate format - df_tmp = df_right.drop_duplicates(subset=["latitude", "longitude"]) - df_tmp = df_tmp.reset_index(drop=True) - lat_right = df_tmp["latitude"].values - lon_right = df_tmp["longitude"].values - candidates = list(zip(lat_right, lon_right)) - - df_tmp2 = df_left.drop_duplicates(subset=["latitude", "longitude"]) - source_points = list(zip(df_tmp2["latitude"].values, df_tmp2["longitude"].values)) - - indices, _ = get_nearest_points(source_points, candidates) - - dict_idx_lat_lon = {} - for idx in set(indices): - df_tmp3 = df_tmp[df_tmp.index == idx] - dict_idx_lat_lon[idx] = ( - df_tmp3["latitude"].values[0], - df_tmp3["longitude"].values[0], - ) - - dict_source_idx = dict(zip(source_points, indices)) - - df_left["point"] = list(zip(df_left["latitude"], df_left["longitude"])) - - df_left["corresponding_index"] = df_left["point"].map(dict_source_idx) - - df_left["closest_point"] = df_left["corresponding_index"].map(dict_idx_lat_lon) - - df_left["closest_lat"], df_left["closest_lon"] = ( - df_left["closest_point"].str[0], - df_left["closest_point"].str[1], - ) - - merged_data = pd.merge( - df_left, - df_right, - left_on=[time_col_left, "closest_lat", "closest_lon"], - right_on=[time_col_right, "latitude", "longitude"], - how=how, - ) - - merged_data = merged_data.drop( - ["point", "closest_point", "corresponding_index"], axis=1 - ) - return merged_data diff --git a/pyro_risks/datasets/era_fwi_viirs.py b/pyro_risks/datasets/era_fwi_viirs.py deleted file mode 100644 index b866801..0000000 --- a/pyro_risks/datasets/era_fwi_viirs.py +++ /dev/null @@ -1,165 +0,0 @@ -# Copyright (C) 2021-2022, Pyronear. - -# This program is licensed under the Apache License version 2. -# See LICENSE or go to for full license details. - -import logging -import pandas as pd -from typing import Optional - -from pyro_risks.datasets import NASAFIRMS_VIIRS, ERA5Land, ERA5T -from pyro_risks.datasets.utils import get_intersection_range -from pyro_risks.datasets.fwi import GwisFwi -from pyro_risks import config as cfg - -__all__ = ["MergedEraFwiViirs"] - - -logger = logging.getLogger("uvicorn.info") - - -def process_dataset_to_predict(fwi: pd.DataFrame, era: pd.DataFrame) -> pd.DataFrame: - """Groupby and merge fwi and era5 datasets for model predictions. - - Args: - fwi (pd.DataFrame): Fwi dataset - era (pd.DataFrame): Era5 dataset - - Returns: - pd.DataFrame: one line per department and day - """ - weather = era.copy() - weather["time"] = pd.to_datetime( - weather["time"], format="%Y-%m-%d", errors="coerce" - ) - fwi_df = fwi.copy() - fwi_df["day"] = pd.to_datetime(fwi_df["day"], format="%Y-%m-%d", errors="coerce") - - # Group fwi dataframe by day and department and compute min, max, mean, std - agg_fwi_df = ( - fwi_df.groupby(["day", "nom"])[cfg.FWI_VARS] - .agg(["min", "max", "mean", "std"]) - .reset_index() - ) - agg_fwi_df.columns = ["day", "nom"] + [ - x[0] + "_" + x[1] for x in agg_fwi_df.columns if x[1] != "" - ] - - logger.info("Finished aggregationg of FWI") - - # Group weather dataframe by day and department and compute min, max, mean, std - agg_wth_df = ( - weather.groupby(["time", "nom"])[cfg.WEATHER_ERA5T_VARS] - .agg(["min", "max", "mean", "std"]) - .reset_index() - ) - agg_wth_df.columns = ["day", "nom"] + [ - x[0] + "_" + x[1] for x in agg_wth_df.columns if x[1] != "" - ] - - logger.info("Finished aggregationg of weather data") - - # Merge fwi and weather together - res_df = pd.merge(agg_fwi_df, agg_wth_df, on=["day", "nom"], how="inner") - logger.info("Finished merging") - return res_df - - -class MergedEraFwiViirs(pd.DataFrame): - """Create dataframe for modeling described in models/score_v0.py. - - Get weather, nasafirms viirs fires and fwi datasets, then filter some of the lines corresponding - to vegetation fires excluding low confidence ones merges. Finally aggregated versions of the - dataframes by department and by day. - For each of the features of weather and fwi datasets creates min, max, mean and std. - Fires are counted for each department and day. - - Returns: - pd.DataFrame - """ - - def __init__( - self, - era_source_path: Optional[str] = None, - viirs_source_path: Optional[str] = None, - fwi_source_path: Optional[str] = None, - ) -> None: - """Define the merged era-fwi-viirs dataframe. - - Args: - era_source_path (str, optional): Era5 data source path. Defaults to None. - viirs_source_path (str, optional): Viirs data source path. Defaults to None. - fwi_source_path (str, optional): Fwi data source path. Defaults to None. - """ - weather = ERA5T(era_source_path) # ERA5Land(era_source_path) - nasa_firms = NASAFIRMS_VIIRS(viirs_source_path) - - # Time span selection - date_range = get_intersection_range(weather.time, nasa_firms.acq_date) - weather = weather[weather.time.isin(date_range)] - nasa_firms = nasa_firms[nasa_firms.acq_date.isin(date_range)] - - # Keep only vegetation wildfires and remove thermal anomalies with low confidence - where = (nasa_firms["confidence"] != "l") & (nasa_firms["type"] == 0) - nasa_firms = nasa_firms[where] - - # Get FWI dataset for year 2019 (1st september missing) - if fwi_source_path is None: - days = [ - x.strftime("%Y%m%d") - for x in pd.date_range(start="2019-01-01", end="2019-12-31") - ] - days.remove("20190901") - fwi_df = GwisFwi(days_list=days) - else: - fwi_df = pd.read_csv(fwi_source_path) - - # Load FWI dataset - fwi_df["day"] = pd.to_datetime(fwi_df["day"], format="%Y%m%d", errors="coerce") - - # Group fwi dataframe by day and department and compute min, max, mean, std - agg_fwi_df = ( - fwi_df.groupby(["day", "departement"])[cfg.FWI_VARS] - .agg(["min", "max", "mean", "std"]) - .reset_index() - ) - agg_fwi_df.columns = ["day", "departement"] + [ - x[0] + "_" + x[1] for x in agg_fwi_df.columns if x[1] != "" - ] - - # Group weather dataframe by day and department and compute min, max, mean, std - agg_wth_df = ( - weather.groupby(["time", "nom"])[cfg.WEATHER_ERA5T_VARS] - .agg(["min", "max", "mean", "std"]) - .reset_index() - ) - agg_wth_df.columns = ["day", "departement"] + [ - x[0] + "_" + x[1] for x in agg_wth_df.columns if x[1] != "" - ] - - # Merge fwi and weather together - mid_df = pd.merge( - agg_fwi_df, agg_wth_df, on=["day", "departement"], how="inner" - ) - - # Count fires by day and department - fires_count = ( - nasa_firms.groupby(["acq_date", "nom"])["confidence"] - .count() - .to_frame() - .reset_index() - ) - fires_count = fires_count.rename({"confidence": "fires"}, axis=1) - - # Merge fires - final_df = pd.merge( - mid_df, - fires_count, - left_on=["day", "departement"], - right_on=["acq_date", "nom"], - how="left", - ).drop(["acq_date", "nom"], axis=1) - - # Fill lines with no fires with 0 - final_df["fires"] = final_df["fires"].fillna(0) - super().__init__(final_df) diff --git a/pyro_risks/datasets/fwi.py b/pyro_risks/datasets/fwi.py deleted file mode 100644 index 7a9cbc1..0000000 --- a/pyro_risks/datasets/fwi.py +++ /dev/null @@ -1,258 +0,0 @@ -# Copyright (C) 2021-2022, Pyronear. - -# This program is licensed under the Apache License version 2. -# See LICENSE or go to for full license details. - -import pandas as pd -import numpy as np -from netCDF4 import Dataset -import geopandas as gpd -from typing import Optional, List, Dict, Any - -import requests -import zipfile -import os -import urllib.request -import json -import logging -import tempfile - -from shapely.geometry import Point -from shapely import geometry - -from pyro_risks import config as cfg -from pyro_risks.datasets.queries_api import call_fwi -from pyro_risks.datasets.masks import get_french_geom - - -def load_data(output_path: str) -> None: - """Load FWI zipped data from github repo and unzip data in folder output_path. - - Args: - output_path (str): absolute, relative or temporary path - """ - results = requests.get(cfg.FR_FWI_2019_FALLBACK) - - os.makedirs(output_path, exist_ok=True) - with open(os.path.join(output_path, "fwi_folder.zip"), "wb") as f: - f.write(results.content) - - file = zipfile.ZipFile(os.path.join(output_path, "fwi_folder.zip")) - file.extractall(path=os.path.join(output_path, "fwi_unzipped")) - - -def include_department(row: pd.Series, polygons_json: Dict[str, Any]) -> str: - """Given a row of a dataframe containing longitude and latitude returns name of french department. - - This function makes use of shapely to return if a polygon contains a point. - Args: - row (pd.Series): row of dataframe - polygons_json (dict): dict with polygons of the departments - - Returns: - str: name of department or empty string - """ - for i_dep in range(len(polygons_json["features"])): - geom = geometry.shape(polygons_json["features"][i_dep]["geometry"]) - if geom.contains(Point((row["longitude"], row["latitude"]))): - return polygons_json["features"][i_dep]["properties"]["nom"] - return "" - - -def get_fwi_from_api(date: str) -> gpd.GeoDataFrame: - """Call the CDS API and return all fwi variables as a dataframe with geo coordinates and departments. - - When calling the API we get a zip file that must be extracted (in a tmp directory), then handle - each queried variable which is in a separate netcdf file. A dataframe is created with all the variables - and then finally we join codes and departments with geopandas. - - Args: - date (str) - - Returns: - pd.DataFrame - """ - - year, month, day = date.split("-") - date_concat = date.replace("-", "") - with tempfile.TemporaryDirectory() as tmp: - call_fwi(tmp, year, month, day) - - file = zipfile.ZipFile(os.path.join(tmp, f"fwi_{year}_{month}_{day}.zip")) - file.extractall(path=os.path.join(tmp, f"fwi_{year}_{month}_{day}")) - - df0 = pd.DataFrame({}) - for var_name in ["BUI", "DC", "DMC", "DSR", "FFMC", "FWI", "ISI"]: - var_path = os.path.join( - tmp, - f"fwi_{year}_{month}_{day}/ECMWF_FWI_{var_name}_{date_concat}_1200_hr_v3.1_int.nc", - ) - nc = Dataset(var_path, "r") - lats = nc.variables["latitude"][:] - var = nc.variables[var_name.lower()][:] - nc.close() - - lons = np.arange(-180, 180.25, 0.25) - var_cyclic = np.ma.hstack([var[0][:, 720:], var[0][:, :721]]) - lon2d, lat2d = np.meshgrid(lons, lats) - df = pd.DataFrame( - { - "latitude": lat2d.flatten(), - "longitude": lon2d.flatten(), - var_name.lower(): var_cyclic.flatten(), - } - ) - df = df.dropna(subset=[var_name.lower()]) - df = df.reset_index(drop=True) - if var_name == "BUI": - df0 = pd.concat([df0, df], axis=1) - else: - df0 = pd.merge(df0, df, on=["latitude", "longitude"], how="inner") - geo_data = gpd.GeoDataFrame( - df0, - geometry=gpd.points_from_xy(df0["longitude"], df0["latitude"]), - crs="EPSG:4326", - ) - geo_masks = get_french_geom() - geo_df = gpd.sjoin(geo_masks, geo_data, how="inner") - return geo_df.drop(["index_right", "geometry"], axis=1) - - -def get_fwi_data_for_predict(date: str) -> pd.DataFrame: - """Run CDS API queries for dates required by the model and return fwi dataset for predict step. - - This takes care principally of the lags required for the modelling step. - - Args: - date (str) - - Returns: - pd.DataFrame - """ - data = get_fwi_from_api(date) - data["day"] = date - # Lag J-1 - lag = np.datetime64(date) - np.timedelta64(1, "D") - dataJ1 = get_fwi_from_api(str(lag)) - dataJ1["day"] = str(lag) - # Lag J-3 - lag = np.datetime64(date) - np.timedelta64(3, "D") - dataJ3 = get_fwi_from_api(str(lag)) - dataJ3["day"] = str(lag) - # Lag J-7 - lag = np.datetime64(date) - np.timedelta64(7, "D") - dataJ7 = get_fwi_from_api(str(lag)) - dataJ7["day"] = str(lag) - merged_data = pd.concat([data, dataJ1, dataJ3, dataJ7], ignore_index=True) - return merged_data - - -def get_fwi_data(source_path: str, day: Optional[str] = "20190101") -> pd.DataFrame: - """Load and handle netcdf data for selected day. - - Return pandas dataframe with longitude, latitude, day and fwi indices - (fwi, ffmc, dmc, dc, isi, bui, dsr, dr). - Args: - source_path (str): path with unzipped netcdf fwi data, usually got from load_data. - day (str, optional): which day to load. Defaults to '20190101'. - - Returns: - pd.DataFrame: dataframe with all fwi indices for selected day - """ - nc = Dataset( - os.path.join(source_path, "fwi_unzipped/JRC_FWI_{}.nc".format(day)), "r" - ) - try: - lons = nc.variables["lon"][:] - lats = nc.variables["lat"][:] - fwi = nc.variables["fwi"][:] - ffmc = nc.variables["ffmc"][:] - dmc = nc.variables["dmc"][:] - dc = nc.variables["dc"][:] - isi = nc.variables["isi"][:] - bui = nc.variables["bui"][:] - dsr = nc.variables["dsr"][:] - dr = nc.variables["danger_risk"][:] - except KeyError: - print("Some reading error with: ", day) - nc.close() - - lon2d, lat2d = np.meshgrid(lons, lats) - - df = pd.DataFrame( - { - "latitude": lat2d.flatten(), - "longitude": lon2d.flatten(), - "day": day, - "fwi": fwi[0, :, :].flatten(), - "ffmc": ffmc[0, :, :].flatten(), - "dmc": dmc[0, :, :].flatten(), - "dc": dc[0, :, :].flatten(), - "isi": isi[0, :, :].flatten(), - "bui": bui[0, :, :].flatten(), - "dsr": dsr[0, :, :].flatten(), - "dr": dr[0, :, :].flatten(), - } - ) - df = df.dropna(subset=["fwi", "ffmc", "dmc", "dc", "isi", "bui", "dsr", "dr"]) - df = df.reset_index(drop=True) - return df - - -def create_departement_df(day_data: pd.DataFrame) -> pd.DataFrame: - """Create dataframe with lon, lat coordinates and corresponding departments. - - Load json with the department polygons and run function include_department to get the - name of departments corresponding to each row of input data, typically one day of FWI data - got with load_data. This may take a few minutes due to the shapely process. - Args: - day_data (pd.Dataframe): df with longitudes and latitudes - - Returns: - pd.DataFrame: dataframe with lat, lon and department - """ - df = day_data.copy() - - with urllib.request.urlopen(cfg.FR_GEOJSON) as url: - dep_polygons = json.loads(url.read().decode()) - - deps = [include_department(df.iloc[i], dep_polygons) for i in range(df.shape[0])] - df["departement"] = deps - df = df[df["departement"] != ""] - dep_geo_df = df[["latitude", "longitude", "departement"]] - return dep_geo_df - - -class GwisFwi(pd.DataFrame): - """GWIS FWI dataframe (8 km resolution) on French territory based on 2019-2020 data.""" - - def __init__(self, days_list: Optional[List[str]] = None) -> None: - """Create dataframe with fwi indices data corresponding to days_list and join french department. - - Args: - days_list: list of str, format year month day (all concatenated) - """ - days_list = ["20190101"] if days_list is None else days_list - fwi_df = pd.DataFrame( - columns=[ - "latitude", - "longitude", - "day", - "fwi", - "ffmc", - "dmc", - "dc", - "isi", - "bui", - "dsr", - "dr", - ] - ) - with tempfile.TemporaryDirectory() as tmp: - load_data(output_path=tmp) - for day in days_list: - df = get_fwi_data(source_path=tmp, day=day) - fwi_df = pd.concat([fwi_df, df]) - dep_geo_df = create_departement_df(df) - fwi_df = pd.merge(fwi_df, dep_geo_df, on=["latitude", "longitude"]) - super().__init__(fwi_df) diff --git a/pyro_risks/datasets/masks.py b/pyro_risks/datasets/masks.py deleted file mode 100644 index 17036e1..0000000 --- a/pyro_risks/datasets/masks.py +++ /dev/null @@ -1,29 +0,0 @@ -# Copyright (C) 2021-2022, Pyronear. - -# This program is licensed under the Apache License version 2. -# See LICENSE or go to for full license details. - -import logging -import geopandas as gpd -from typing import Optional - -from pyro_risks import config as cfg - - -__all__ = ["get_french_geom"] - - -def get_french_geom(path: Optional[str] = None) -> gpd.GeoDataFrame: - """Creates the dataframe with the geometry of French departments - - Args: - path: optional path to your local geojson - """ - if isinstance(path, str): - return gpd.read_file(path) - else: - try: - return gpd.read_file(cfg.FR_GEOJSON) - except Exception: - logging.warning(f"Unable to access {cfg.FR_GEOJSON}, trying fallback.") - return gpd.read_file(cfg.FR_GEOJSON_FALLBACK) diff --git a/pyro_risks/datasets/nasa_wildfires.py b/pyro_risks/datasets/nasa_wildfires.py deleted file mode 100644 index a6ba398..0000000 --- a/pyro_risks/datasets/nasa_wildfires.py +++ /dev/null @@ -1,243 +0,0 @@ -# Copyright (C) 2021-2022, Pyronear. - -# This program is licensed under the Apache License version 2. -# See LICENSE or go to for full license details. - -import logging -from typing import List, Optional - -import geopandas as gpd -import pandas as pd - -from pyro_risks import config as cfg - -__all__ = ["NASAFIRMS", "NASAFIRMS_VIIRS"] - -from .masks import get_french_geom - - -class NASAFIRMS(pd.DataFrame): - """Wildfire history dataset on French territory, using data from - NASA satellites. Accessible by completing the form at - https://effis.jrc.ec.europa.eu/applications/data-request-form/ - - Careful when completing the form, you can either choose to get the - dataset in json format or xlsx format. - However if your source data is in a csv format, you can still use - this class to clean it using the parameter `fmt`. - - By default, the format is considered to be json. - - Args: - source_path: str - Path or URL to your version of the source data - fmt: str - Format of the source data, can either be "csv", "xlsx" - or "json". Default is "json". - use_cols: List[str] - List of columns to read from the source - """ - - kept_cols = [ - "latitude", - "longitude", - "acq_date", - "acq_time", - "confidence", - "bright_t31", - "frp", - ] - fmt = "json" - - def __init__( - self, - source_path: Optional[str] = None, - fmt: Optional[str] = None, - use_cols: Optional[List[str]] = None, - ) -> None: - """ - Args: - source_path: Optional[str] - Path or URL to your version of the source data - fmt: Optional[str] - Format of the source data, can either be - "csv", "xlsx" or "json". - use_cols: Optional[List[str]] - List of columns to keep in the dataframe - """ - if not isinstance(source_path, str): - # Download in cache - logging.warning( - f"No data source specified for {self.__class__.__name__}, trying fallback." - ) - source_path = cfg.FR_NASA_FIRMS_FALLBACK - if not isinstance(fmt, str): - fmt = self.fmt - if not isinstance(use_cols, list): - use_cols = self.kept_cols - - if fmt == "json": - data = pd.read_json(source_path, orient="records") - data = pd.json_normalize(data["features"]) - # remove unnecessary prefix - data.columns = [col.split(".")[-1] for col in data.columns] - # keep defined columns - data = data[use_cols] - - elif fmt == "xlsx": - data = pd.read_excel(source_path, usecols=use_cols) - - elif fmt == "csv": - data = pd.read_csv(source_path, usecols=use_cols) - # if csv format, the `acq_time` column needs to be changed - # the raw data as the format "HHMM", we will transform it - # so that it has the format "HHMMSS" - # convert type to str - data["acq_time"] = data["acq_time"].astype(str) - # fill with 0 - data["acq_time"] = data["acq_time"].str.ljust(6, "0") - # prepare for datetime needs - data["acq_time"] = data["acq_time"].apply( - lambda s: ":".join(map("{}{}".format, *(s[::2], s[1::2]))) - ) - - else: - raise ValueError( - "The given format cannot be read, it should be either csv, xlsx or json." - ) - - data["acq_date_time"] = ( - data["acq_date"].astype(str) + " " + data["acq_time"].astype(str) - ) - data["acq_date"] = pd.to_datetime( - data["acq_date"], format="%Y-%m-%d", errors="coerce" - ) - data["acq_date_time"] = pd.to_datetime( - data["acq_date_time"], format="%Y-%m-%d %H:%M:%S", errors="coerce" - ) - data["latitude"] = data["latitude"].astype(float) - data["longitude"] = data["longitude"].astype(float) - data["bright_t31"] = data["bright_t31"].astype(float) - data["frp"] = data["frp"].astype(float) - - # add departements geometry to allow for departements merging - geo_data = gpd.GeoDataFrame( - data, - geometry=gpd.points_from_xy(data["longitude"], data["latitude"]), - crs="EPSG:4326", - ) - # Match the polygons using the ones of each predefined country area - geo_masks = get_french_geom() - geo_df = gpd.sjoin(geo_masks, geo_data, how="inner") - super().__init__(geo_df.drop(["acq_time", "index_right", "geometry"], axis=1)) - - -class NASAFIRMS_VIIRS(pd.DataFrame): - """Wildfire history dataset on French territory, using data from - VIIRS. - - Args: - source_path: str - Path or URL to your version of the source data - fmt: str - Format of the source data, can either be "csv", "xlsx" - or "json". Default is "json". - use_cols: List[str] - List of columns to read from the source - """ - - kept_cols = [ - "latitude", - "longitude", - "acq_date", - "acq_time", - "confidence", - "bright_ti4", - "bright_ti5", - "frp", - "type", - ] - fmt = "csv" - - def __init__( - self, - source_path: Optional[str] = None, - fmt: Optional[str] = None, - use_cols: Optional[List[str]] = None, - ) -> None: - """ - Args: - source_path: Optional[str] - Path or URL to your version of the source data - fmt: Optional[str] - Format of the source data, can either be - "csv", "xlsx" or "json". - use_cols: Optional[List[str]] - List of columns to keep in the dataframe - """ - if not isinstance(source_path, str): - # Download in cache - logging.warning( - f"No data source specified for {self.__class__.__name__}, trying fallback." - ) - source_path = cfg.FR_NASA_VIIRS_FALLBACK - if not isinstance(fmt, str): - fmt = self.fmt - if not isinstance(use_cols, list): - use_cols = self.kept_cols - - if fmt == "json": - data = pd.read_json(source_path, orient="records") - data = pd.json_normalize(data["features"]) - # remove unnecessary prefix - data.columns = [col.split(".")[-1] for col in data.columns] - # keep defined columns - data = data[use_cols] - - elif fmt == "xlsx": - data = pd.read_excel(source_path, usecols=use_cols) - - elif fmt == "csv": - data = pd.read_csv(source_path, usecols=use_cols) - # if csv format, the `acq_time` column needs to be changed - # the raw data as the format "HHMM", we will transform it - # so that it has the format "HHMMSS" - # convert type to str - data["acq_time"] = data["acq_time"].astype(str) - # fill with 0 - data["acq_time"] = data["acq_time"].str.ljust(6, "0") - # prepare for datetime needs - data["acq_time"] = data["acq_time"].apply( - lambda s: ":".join(map("{}{}".format, *(s[::2], s[1::2]))) - ) - - else: - raise ValueError( - "The given format cannot be read, it should be either csv, xlsx or json." - ) - - data["acq_date_time"] = ( - data["acq_date"].astype(str) + " " + data["acq_time"].astype(str) - ) - data["acq_date"] = pd.to_datetime( - data["acq_date"], format="%Y-%m-%d", errors="coerce" - ) - data["acq_date_time"] = pd.to_datetime( - data["acq_date_time"], format="%Y-%m-%d %H:%M:%S", errors="coerce" - ) - data["latitude"] = data["latitude"].astype(float) - data["longitude"] = data["longitude"].astype(float) - data["bright_ti4"] = data["bright_ti4"].astype(float) - data["bright_ti5"] = data["bright_ti5"].astype(float) - data["frp"] = data["frp"].astype(float) - - # add departements geometry to allow for departements merging - geo_data = gpd.GeoDataFrame( - data, - geometry=gpd.points_from_xy(data["longitude"], data["latitude"]), - crs="EPSG:4326", - ) - # Match the polygons using the ones of each predefined country area - geo_masks = get_french_geom() - geo_df = gpd.sjoin(geo_masks, geo_data, how="inner") - super().__init__(geo_df.drop(["acq_time", "index_right", "geometry"], axis=1)) diff --git a/pyro_risks/datasets/queries_api.py b/pyro_risks/datasets/queries_api.py deleted file mode 100644 index 79e43eb..0000000 --- a/pyro_risks/datasets/queries_api.py +++ /dev/null @@ -1,464 +0,0 @@ -# Copyright (C) 2021-2022, Pyronear. - -# This program is licensed under the Apache License version 2. -# See LICENSE or go to for full license details. - -import cdsapi -import os -import logging -import urllib3 - -from pyro_risks import config as cfg - - -urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) -logger = logging.getLogger("uvicorn.info") - - -def call_era5land(output_path: str, year: str, month: str, day: str) -> None: - """Call cdpaspi to get ERA5Land data as file nc format for given date. - - By default "time" = "14:00". It is not an issue since we get these ERA5 Land data - with a 2 months delay. - - Args: - output_path: str - year: str - month: str - day: str - """ - file_path = os.path.join(output_path, f"era5land_{year}_{month}_{day}.nc") - - if os.path.exists(file_path): - logger.info(f"Using cached {file_path}") - return - - c = cdsapi.Client(url=cfg.CDS_URL, key=f"{cfg.CDS_UID}:{cfg.CDS_API_KEY}", verify=0) - - c.retrieve( - "reanalysis-era5-land", - { - "variable": [ - "10m_u_component_of_wind", - "10m_v_component_of_wind", - "2m_dewpoint_temperature", - "2m_temperature", - "evaporation_from_bare_soil", - "evaporation_from_open_water_surfaces_excluding_oceans", - "evaporation_from_the_top_of_canopy", - "evaporation_from_vegetation_transpiration", - "forecast_albedo", - "lake_bottom_temperature", - "lake_ice_depth", - "lake_ice_temperature", - "lake_mix_layer_depth", - "lake_mix_layer_temperature", - "lake_shape_factor", - "lake_total_layer_temperature", - "leaf_area_index_high_vegetation", - "leaf_area_index_low_vegetation", - "potential_evaporation", - "runoff", - "skin_reservoir_content", - "skin_temperature", - "snow_albedo", - "snow_cover", - "snow_density", - "snow_depth", - "snow_depth_water_equivalent", - "snow_evaporation", - "snowfall", - "snowmelt", - "soil_temperature_level_1", - "soil_temperature_level_2", - "soil_temperature_level_3", - "soil_temperature_level_4", - "sub_surface_runoff", - "surface_latent_heat_flux", - "surface_net_solar_radiation", - "surface_net_thermal_radiation", - "surface_pressure", - "surface_runoff", - "surface_sensible_heat_flux", - "surface_solar_radiation_downwards", - "surface_thermal_radiation_downwards", - "temperature_of_snow_layer", - "total_evaporation", - "total_precipitation", - "volumetric_soil_water_layer_1", - "volumetric_soil_water_layer_2", - "volumetric_soil_water_layer_3", - "volumetric_soil_water_layer_4", - ], - "year": year, - "month": month, - "day": day, - "time": "14:00", - "area": [ - 51, - -6, - 41, - 10, - ], - "format": "netcdf", - }, - file_path, - ) - - -def call_era5t(output_path: str, year: str, month: str, day: str) -> None: - """Call cdpaspi to get ERA5T data as file nc format for given date. - - Most recent available data is Day -5. - By default "time" = "14:00". It is not an issue since we get these ERA5T data - with a 5 days delay. - - Args: - output_path: str - year: str - month: str - day: str - """ - file_path = os.path.join(output_path, f"era5t_{year}_{month}_{day}.nc") - - if os.path.exists(file_path): - logger.info(f"Using cached {file_path}") - return - - c = cdsapi.Client(url=cfg.CDS_URL, key=f"{cfg.CDS_UID}:{cfg.CDS_API_KEY}", verify=0) - - c.retrieve( - "reanalysis-era5-single-levels", - { - "product_type": "reanalysis", - "variable": [ - "100m_u_component_of_wind", - "100m_v_component_of_wind", - "10m_u_component_of_neutral_wind", - "10m_u_component_of_wind", - "10m_v_component_of_neutral_wind", - "10m_v_component_of_wind", - "10m_wind_gust_since_previous_post_processing", - "2m_dewpoint_temperature", - "2m_temperature", - "air_density_over_the_oceans", - "altimeter_corrected_wave_height", - "altimeter_range_relative_correction", - "altimeter_wave_height", - "angle_of_sub_gridscale_orography", - "anisotropy_of_sub_gridscale_orography", - "benjamin_feir_index", - "boundary_layer_dissipation", - "boundary_layer_height", - "charnock", - "clear_sky_direct_solar_radiation_at_surface", - "cloud_base_height", - "coefficient_of_drag_with_waves", - "convective_available_potential_energy", - "convective_inhibition", - "convective_precipitation", - "convective_rain_rate", - "convective_snowfall", - "convective_snowfall_rate_water_equivalent", - "downward_uv_radiation_at_the_surface", - "duct_base_height", - "eastward_gravity_wave_surface_stress", - "eastward_turbulent_surface_stress", - "evaporation", - "forecast_albedo", - "forecast_logarithm_of_surface_roughness_for_heat", - "forecast_surface_roughness", - "free_convective_velocity_over_the_oceans", - "friction_velocity", - "gravity_wave_dissipation", - "high_cloud_cover", - "high_vegetation_cover", - "ice_temperature_layer_1", - "ice_temperature_layer_2", - "ice_temperature_layer_3", - "ice_temperature_layer_4", - "instantaneous_10m_wind_gust", - "instantaneous_eastward_turbulent_surface_stress", - "instantaneous_large_scale_surface_precipitation_fraction", - "instantaneous_moisture_flux", - "instantaneous_northward_turbulent_surface_stress", - "instantaneous_surface_sensible_heat_flux", - "k_index", - "lake_bottom_temperature", - "lake_cover", - "lake_depth", - "lake_ice_depth", - "lake_ice_temperature", - "lake_mix_layer_depth", - "lake_mix_layer_temperature", - "lake_shape_factor", - "lake_total_layer_temperature", - "land_sea_mask", - "large_scale_precipitation", - "large_scale_precipitation_fraction", - "large_scale_rain_rate", - "large_scale_snowfall", - "large_scale_snowfall_rate_water_equivalent", - "leaf_area_index_high_vegetation", - "leaf_area_index_low_vegetation", - "low_cloud_cover", - "low_vegetation_cover", - "maximum_2m_temperature_since_previous_post_processing", - "maximum_individual_wave_height", - "maximum_total_precipitation_rate_since_previous_post_processing", - "mean_boundary_layer_dissipation", - "mean_convective_precipitation_rate", - "mean_convective_snowfall_rate", - "mean_direction_of_total_swell", - "mean_direction_of_wind_waves", - "mean_eastward_gravity_wave_surface_stress", - "mean_eastward_turbulent_surface_stress", - "mean_evaporation_rate", - "mean_gravity_wave_dissipation", - "mean_large_scale_precipitation_fraction", - "mean_large_scale_precipitation_rate", - "mean_large_scale_snowfall_rate", - "mean_northward_gravity_wave_surface_stress", - "mean_northward_turbulent_surface_stress", - "mean_period_of_total_swell", - "mean_period_of_wind_waves", - "mean_potential_evaporation_rate", - "mean_runoff_rate", - "mean_sea_level_pressure", - "mean_snow_evaporation_rate", - "mean_snowfall_rate", - "mean_snowmelt_rate", - "mean_square_slope_of_waves", - "mean_sub_surface_runoff_rate", - "mean_surface_direct_short_wave_radiation_flux", - "mean_surface_direct_short_wave_radiation_flux_clear_sky", - "mean_surface_downward_long_wave_radiation_flux", - "mean_surface_downward_long_wave_radiation_flux_clear_sky", - "mean_surface_downward_short_wave_radiation_flux", - "mean_surface_downward_short_wave_radiation_flux_clear_sky", - "mean_surface_downward_uv_radiation_flux", - "mean_surface_latent_heat_flux", - "mean_surface_net_long_wave_radiation_flux", - "mean_surface_net_long_wave_radiation_flux_clear_sky", - "mean_surface_net_short_wave_radiation_flux", - "mean_surface_net_short_wave_radiation_flux_clear_sky", - "mean_surface_runoff_rate", - "mean_surface_sensible_heat_flux", - "mean_top_downward_short_wave_radiation_flux", - "mean_top_net_long_wave_radiation_flux", - "mean_top_net_long_wave_radiation_flux_clear_sky", - "mean_top_net_short_wave_radiation_flux", - "mean_top_net_short_wave_radiation_flux_clear_sky", - "mean_total_precipitation_rate", - "mean_vertical_gradient_of_refractivity_inside_trapping_layer", - "mean_vertically_integrated_moisture_divergence", - "mean_wave_direction", - "mean_wave_direction_of_first_swell_partition", - "mean_wave_direction_of_second_swell_partition", - "mean_wave_direction_of_third_swell_partition", - "mean_wave_period", - "mean_wave_period_based_on_first_moment", - "mean_wave_period_based_on_first_moment_for_swell", - "mean_wave_period_based_on_first_moment_for_wind_waves", - "mean_wave_period_based_on_second_moment_for_swell", - "mean_wave_period_based_on_second_moment_for_wind_waves", - "mean_wave_period_of_first_swell_partition", - "mean_wave_period_of_second_swell_partition", - "mean_wave_period_of_third_swell_partition", - "mean_zero_crossing_wave_period", - "medium_cloud_cover", - "minimum_2m_temperature_since_previous_post_processing", - "minimum_total_precipitation_rate_since_previous_post_processing", - "minimum_vertical_gradient_of_refractivity_inside_trapping_layer", - "model_bathymetry", - "near_ir_albedo_for_diffuse_radiation", - "near_ir_albedo_for_direct_radiation", - "normalized_energy_flux_into_ocean", - "normalized_energy_flux_into_waves", - "normalized_stress_into_ocean", - "northward_gravity_wave_surface_stress", - "northward_turbulent_surface_stress", - "ocean_surface_stress_equivalent_10m_neutral_wind_direction", - "ocean_surface_stress_equivalent_10m_neutral_wind_speed", - "orography", - "peak_wave_period", - "period_corresponding_to_maximum_individual_wave_height", - "potential_evaporation", - "precipitation_type", - "runoff", - "sea_ice_cover", - "sea_surface_temperature", - "significant_height_of_combined_wind_waves_and_swell", - "significant_height_of_total_swell", - "significant_height_of_wind_waves", - "significant_wave_height_of_first_swell_partition", - "significant_wave_height_of_second_swell_partition", - "significant_wave_height_of_third_swell_partition", - "skin_reservoir_content", - "skin_temperature", - "slope_of_sub_gridscale_orography", - "snow_albedo", - "snow_density", - "snow_depth", - "snow_evaporation", - "snowfall", - "snowmelt", - "soil_temperature_level_1", - "soil_temperature_level_2", - "soil_temperature_level_3", - "soil_temperature_level_4", - "soil_type", - "standard_deviation_of_filtered_subgrid_orography", - "standard_deviation_of_orography", - "sub_surface_runoff", - "surface_latent_heat_flux", - "surface_net_solar_radiation", - "surface_net_solar_radiation_clear_sky", - "surface_net_thermal_radiation", - "surface_net_thermal_radiation_clear_sky", - "surface_pressure", - "surface_runoff", - "surface_sensible_heat_flux", - "surface_solar_radiation_downward_clear_sky", - "surface_solar_radiation_downwards", - "surface_thermal_radiation_downward_clear_sky", - "surface_thermal_radiation_downwards", - "temperature_of_snow_layer", - "toa_incident_solar_radiation", - "top_net_solar_radiation", - "top_net_solar_radiation_clear_sky", - "top_net_thermal_radiation", - "top_net_thermal_radiation_clear_sky", - "total_cloud_cover", - "total_column_cloud_ice_water", - "total_column_cloud_liquid_water", - "total_column_ozone", - "total_column_rain_water", - "total_column_snow_water", - "total_column_supercooled_liquid_water", - "total_column_water", - "total_column_water_vapour", - "total_precipitation", - "total_sky_direct_solar_radiation_at_surface", - "total_totals_index", - "trapping_layer_base_height", - "trapping_layer_top_height", - "type_of_high_vegetation", - "type_of_low_vegetation", - "u_component_stokes_drift", - "uv_visible_albedo_for_diffuse_radiation", - "uv_visible_albedo_for_direct_radiation", - "v_component_stokes_drift", - "vertical_integral_of_divergence_of_cloud_frozen_water_flux", - "vertical_integral_of_divergence_of_cloud_liquid_water_flux", - "vertical_integral_of_divergence_of_geopotential_flux", - "vertical_integral_of_divergence_of_kinetic_energy_flux", - "vertical_integral_of_divergence_of_mass_flux", - "vertical_integral_of_divergence_of_moisture_flux", - "vertical_integral_of_divergence_of_ozone_flux", - "vertical_integral_of_divergence_of_thermal_energy_flux", - "vertical_integral_of_divergence_of_total_energy_flux", - "vertical_integral_of_eastward_cloud_frozen_water_flux", - "vertical_integral_of_eastward_cloud_liquid_water_flux", - "vertical_integral_of_eastward_geopotential_flux", - "vertical_integral_of_eastward_heat_flux", - "vertical_integral_of_eastward_kinetic_energy_flux", - "vertical_integral_of_eastward_mass_flux", - "vertical_integral_of_eastward_ozone_flux", - "vertical_integral_of_eastward_total_energy_flux", - "vertical_integral_of_eastward_water_vapour_flux", - "vertical_integral_of_energy_conversion", - "vertical_integral_of_kinetic_energy", - "vertical_integral_of_mass_of_atmosphere", - "vertical_integral_of_mass_tendency", - "vertical_integral_of_northward_cloud_frozen_water_flux", - "vertical_integral_of_northward_cloud_liquid_water_flux", - "vertical_integral_of_northward_geopotential_flux", - "vertical_integral_of_northward_heat_flux", - "vertical_integral_of_northward_kinetic_energy_flux", - "vertical_integral_of_northward_mass_flux", - "vertical_integral_of_northward_ozone_flux", - "vertical_integral_of_northward_total_energy_flux", - "vertical_integral_of_northward_water_vapour_flux", - "vertical_integral_of_potential_and_internal_energy", - "vertical_integral_of_potential_internal_and_latent_energy", - "vertical_integral_of_temperature", - "vertical_integral_of_thermal_energy", - "vertical_integral_of_total_energy", - "vertically_integrated_moisture_divergence", - "volumetric_soil_water_layer_1", - "volumetric_soil_water_layer_2", - "volumetric_soil_water_layer_3", - "volumetric_soil_water_layer_4", - "wave_spectral_directional_width", - "wave_spectral_directional_width_for_swell", - "wave_spectral_directional_width_for_wind_waves", - "wave_spectral_kurtosis", - "wave_spectral_peakedness", - "wave_spectral_skewness", - "zero_degree_level", - ], - "year": year, - "month": month, - "day": day, - "time": "14:00", - "area": [ - 51, - -6, - 41, - 10, - ], - "format": "netcdf", - }, - file_path, - ) - # TODO : take only needed variables for the model - - -def call_fwi(output_path: str, year: str, month: str, day: str) -> None: - """Get data from Fire danger indices historical data from the Copernicus Climate Data Store. - - Information on FWI can be found here: - https://datastore.copernicus-climate.eu/c3s/published-forms/c3sprod/cems-fire-historical/Fire_In_CDS.pdf - - Please follow the instructions before using the CDS API: https://cds.climate.copernicus.eu/api-how-to - Most recent available data is Day -2 - - Args: - output_path: str - year: str - month: str - day: str - """ - - file_path = os.path.join(output_path, f"fwi_{year}_{month}_{day}.zip") - - if os.path.exists(file_path): - logger.info(f"Using cached {file_path}") - return - - c = cdsapi.Client(url=cfg.CDS_URL, key=f"{cfg.CDS_UID}:{cfg.CDS_API_KEY}", verify=0) - - c.retrieve( - "cems-fire-historical", - { - "format": "zip", - "dataset": "Intermediate dataset", - "year": year, - "month": month, - "version": "3.1", - "variable": [ - "build_up_index", - "danger_risk", - "drought_code", - "duff_moisture_code", - "fine_fuel_moisture_code", - "fire_daily_severity_rating", - "fire_weather_index", - "initial_fire_spread_index", - ], - "product_type": "reanalysis", - "day": day, - }, - file_path, - ) diff --git a/pyro_risks/datasets/utils.py b/pyro_risks/datasets/utils.py deleted file mode 100644 index c55a4c1..0000000 --- a/pyro_risks/datasets/utils.py +++ /dev/null @@ -1,370 +0,0 @@ -# Copyright (C) 2021-2022, Pyronear. - -# This program is licensed under the Apache License version 2. -# See LICENSE or go to for full license details. - -import requests -import os -import gzip -import tarfile -import shutil -import warnings - -from scipy import spatial -from typing import Tuple, Optional, List, Any - -from io import BytesIO -from datetime import datetime -from urllib.parse import urlparse -from zipfile import ZipFile - -import numpy as np -import pandas as pd - - -def get_intersection_range(ts1: pd.Series, ts2: pd.Series) -> pd.DatetimeIndex: - """Computes the intersecting date range of two series. - - Args: - ts1: time series - ts2: time series - """ - # Time span selection - time_range1 = max(ts1.min(), ts2.min()) - time_range2 = min(ts1.max(), ts2.max()) - if time_range1 > time_range2: - raise ValueError("Extracts do not have intersecting date range") - - return pd.date_range(time_range1, time_range2) - - -def find_closest_weather_station( - df_weather: pd.DataFrame, latitude: pd.DataFrame, longitude: pd.DataFrame -) -> int: - """ - The weather dataframe SHOULD contain a "STATION" column giving the id of - each weather station in the dataset. - - Args: - df_weather: pd.DataFrame - Dataframe of weather conditions - latitude: float - Latitude of the point to which we want to find the closest - weather station - longitude: float - Longitude of the point to which we want to find the closest - weather station - - Returns: int - Id of the closest weather station of the point (lat, lon) - - """ - if "STATION" not in df_weather.columns: - raise ValueError("STATION column is missing in given weather dataframe.") - - weather = df_weather.drop_duplicates(subset=["STATION", "LATITUDE", "LONGITUDE"]) - - zipped_station_lat_lon = zip( - weather["STATION"].values.tolist(), - weather["LATITUDE"].values.tolist(), - weather["LONGITUDE"].values.tolist(), - ) - list_station_lat_lon = list(zipped_station_lat_lon) - - reference_station = list_station_lat_lon[0][0] - latitude_0 = list_station_lat_lon[0][1] - longitude_0 = list_station_lat_lon[0][2] - - min_distance = np.sqrt( - (latitude - latitude_0) ** 2 + (longitude - longitude_0) ** 2 - ) - - for k in range(1, weather.shape[0]): - current_latitude = list_station_lat_lon[k][1] - current_longitude = list_station_lat_lon[k][2] - current_distance = np.sqrt( - (latitude - current_latitude) ** 2 + (longitude - current_longitude) ** 2 - ) - - if current_distance < min_distance: - min_distance = current_distance - reference_station = list_station_lat_lon[k][0] - - return int(reference_station) - - -def find_closest_location( - df_weather: pd.DataFrame, latitude: float, longitude: float -) -> Tuple[float, float]: - """ - For a given point (`latitude`, `longitude`), get the closest point which exists in `df_weather`. - This function is to be used when the user do not choose to use weather stations data but satellite data - e.g. ERA5 Land variables. - - Args: - df_weather: pd.DataFrame - Dataframe of land/weather conditions - latitude: float - Latitude of the point to which we want to find the closest point in `df_weather`. - longitude: float - Longitude of the point to which we want to find the closest in `df_weather`. - - Returns: Tuple(float, float) - Tuple of the closest weather point (closest_lat, closest_lon) of the point (lat, lon) - """ - if "STATION" in df_weather.columns: - raise ValueError( - "STATION is in the columns, should use `find_closest_weather_station`." - ) - - weather = df_weather.drop_duplicates(subset=["latitude", "longitude"]) - - zipped_points_lat_lon = zip( - weather["latitude"].values.tolist(), weather["longitude"].values.tolist() - ) - list_station_lat_lon = list(zipped_points_lat_lon) - - latitude_0 = list_station_lat_lon[0][0] - longitude_0 = list_station_lat_lon[0][1] - reference_point = (latitude_0, longitude_0) - - min_distance = np.sqrt( - (latitude - latitude_0) ** 2 + (longitude - longitude_0) ** 2 - ) - - for k in range(1, weather.shape[0]): - current_latitude = list_station_lat_lon[k][0] - current_longitude = list_station_lat_lon[k][1] - current_distance = np.sqrt( - (latitude - current_latitude) ** 2 + (longitude - current_longitude) ** 2 - ) - - if current_distance < min_distance: - min_distance = current_distance - reference_point = (current_latitude, current_longitude) - - return reference_point - - -def url_retrieve(url: str, timeout: Optional[float] = None) -> bytes: - """Retrives and pass the content of an URL request. - - Args: - url: URL to request - timeout: number of seconds before the request times out. Defaults to 4. - - Raises: - requests.exceptions.ConnectionError: - - Return: - Content of the response - """ - response = requests.get(url, timeout=timeout, allow_redirects=True) - if response.status_code != 200: - raise requests.exceptions.ConnectionError( - f"Error code {response.status_code} - could not download {url}" - ) - return response.content - - -def get_fname(url: str) -> Tuple[str, Optional[str], Optional[str]]: - """Find file name, extension and compression of an archive located by an URL. - - Args: - url: URL of the compressed archive - - Raises: - ValueError: if URL contains more than one extension - ValueError: if URL contains more than one compression format - - Returns: - A tuple containing the base file name, extension and compression format - """ - supported_compressions = ["tar", "gz", "zip"] - supported_extensions = ["csv", "geojson", "shp", "shx", "nc"] - - archive_name = urlparse(url).path.rpartition("/")[-1] - - base = archive_name.split(".")[0] - - list_extensions = list(set(supported_extensions) & set(archive_name.split("."))) - list_compressions = list(set(supported_compressions) & set(archive_name.split("."))) - - if len(list_extensions) == 0: - extension = None - elif len(list_extensions) == 1: - extension = list_extensions[0] - else: - raise ValueError(f"Error {url} contains more than one extension") - - if len(list_compressions) == 0: - compression = None - - elif len(list_compressions) == 1: - compression = list_compressions[0] - - elif len(list_compressions) == 2: - compression = "tar.gz" - - else: - raise ValueError(f"Error {url} contains more than one compression format") - - return (base, extension, compression) - - -def download( - url: str, - default_extension: str, - unzip: Optional[bool] = True, - destination: str = "./tmp", -) -> None: - """Helper function for downloading, unzipping and saving compressed file from a given URL. - - Args: - url: URL of the compressed archive - default_extension: extension of the archive - unzip: whether archive should be unzipped. Defaults to True. - destination: folder where the file should be saved. Defaults to '.'. - """ - base, extension, compression = get_fname(url) - content = url_retrieve(url) - - if unzip and compression == "zip": - os.makedirs(os.path.dirname(destination), exist_ok=True) - with ZipFile(BytesIO(content)) as zip_file: - zip_file.extractall(destination) - - elif unzip and compression == "tar.gz": - os.makedirs(os.path.dirname(destination), exist_ok=True) - with tarfile.open(fileobj=BytesIO(content), mode="r:gz") as tar_file: - tar_file.extractall(path=destination) - - elif unzip and compression == "gz": - file_name = ( - f"{base}.{extension}" - if extension is not None - else f"{base}.{default_extension}" - ) - full_path = os.path.join(destination, file_name) - os.makedirs(os.path.dirname(full_path), exist_ok=True) - with gzip.open(BytesIO(content)) as gzip_file, open( - full_path, "wb+" - ) as unzipped_file: - shutil.copyfileobj(gzip_file, unzipped_file) - - elif not unzip and compression is None: - file_name = ( - f"{base}.{extension}" - if extension is not None - else f"{base}.{default_extension}" - ) - full_path = os.path.join(destination, file_name) - os.makedirs(os.path.dirname(full_path), exist_ok=True) - with open(full_path, "wb+") as file: - file.write(content) - - elif not unzip and isinstance(compression, str): - file_name = f"{base}.{compression}" - full_path = os.path.join(destination, file_name) - os.makedirs(os.path.dirname(full_path), exist_ok=True) - with open(full_path, "wb+") as file: - file.write(content) - - else: - raise ValueError("If the file is not compressed set unzip to False") - - -def get_ghcn( - start_year: Optional[int] = None, - end_year: Optional[int] = None, - destination: str = "./ghcn", -) -> None: - """Download yearly Global Historical Climatology Network - Daily (GHCN-Daily) (.csv) From (NCEI). - - Args: - start_year: first year to be retrieved. Defaults to None. - end_year: first that will not be retrieved. Defaults to None. - destination: destination directory. Defaults to './ghcn'. - """ - start_year = datetime.now().year if start_year is None else start_year - end_year = ( - datetime.now().year + 1 - if end_year is None or start_year == end_year - else end_year - ) - - for year in range(start_year, end_year): - url = f"https://www1.ncdc.noaa.gov/pub/data/ghcn/daily/by_year/{year}.csv.gz" - download(url=url, default_extension="csv", unzip=True, destination=destination) - - -def get_modis( - start_year: Optional[int] = None, - end_year: Optional[int] = None, - yearly: Optional[bool] = False, - destination: str = "./firms", -) -> None: - """Download last 24H or yearly France active fires from the FIRMS NASA. - Args: - start_year: first year to be retrieved. Defaults to None. - end_year: first that will not be retrieved. Defaults to None. - yearly: whether to download yearly active fires or not. Defaults to False. - destination: destination directory. Defaults to './firms'.] - """ - if yearly is True: - start_year = datetime.now().year - 1 if start_year is None else start_year - end_year = ( - datetime.now().year - if end_year is None or start_year == end_year - else end_year - ) - - for year in range(start_year, end_year): - assert ( - start_year != 2020 or end_year != 2021 - ), "MODIS active fire archives are only available for the years from 2000 to 2019" - url = f"https://firms.modaps.eosdis.nasa.gov/data/country/modis/{year}/modis_{year}_France.csv" - download( - url=url, default_extension="csv", unzip=False, destination=destination - ) - - else: - if start_year is not None: - raise BaseException( - warnings.warn( - "The active fires from the last 24H of the MODIS Satellite will be download." - ) - ) # type: ignore - else: - url = "https://firms.modaps.eosdis.nasa.gov/data/active_fire/c6/csv/MODIS_C6_Europe_24h.csv" - download( - url=url, default_extension="csv", unzip=False, destination=destination - ) - - -def get_nearest_points( - source_points: List[Tuple[Any, Any]], candidates: List[Tuple[Any, Any]] -) -> Tuple: - """ - Find nearest neighbor for all source points from a set of candidate points - using KDTree algorithm. - - Args: - source_points: List[Tuple] - List of tuples (lat, lon) for which you want to find the closest point in candidates. - candidates: List[Tuple] - List of tuples (lat, lon) which are all possible closest points. - - Returns: Tuple - indices : array of integers - The locations of the neighbors in candidates. - distances : array of floats - The distances to the nearest neighbors.. - """ - # Create tree from the candidate points - tree = spatial.cKDTree(candidates) - - # Find closest points and distances - distances, indices = tree.query(source_points, k=1) - - return indices, distances diff --git a/pyro_risks/datasets/weather.py b/pyro_risks/datasets/weather.py deleted file mode 100644 index d510abd..0000000 --- a/pyro_risks/datasets/weather.py +++ /dev/null @@ -1,80 +0,0 @@ -# Copyright (C) 2021-2022, Pyronear. - -# This program is licensed under the Apache License version 2. -# See LICENSE or go to for full license details. - -import logging -import pandas as pd -import geopandas as gpd -from typing import List, Optional - -from pyro_risks import config as cfg -from .masks import get_french_geom - -__all__ = ["NOAAWeather"] - - -class NOAAWeather(pd.DataFrame): - """Weather dataset on French territory, accessible upon request to NOAA. Requests are to be made at: - https://www.ncdc.noaa.gov/cdo-web. - - Args: - source_path: path or URL to your version of the source data - use_cols: columns to read from source - """ - - kept_cols = [ - "STATION", - "DATE", - "LATITUDE", - "LONGITUDE", - "ELEVATION", - "DEWP", - "DEWP_ATTRIBUTES", - "FRSHTT", - "GUST", - "MAX", - "MIN", - "MXSPD", - "PRCP", - "SLP", - "SLP_ATTRIBUTES", - "SNDP", - "STP", - "STP_ATTRIBUTES", - "TEMP", - "TEMP_ATTRIBUTES", - "VISIB", - "VISIB_ATTRIBUTES", - "WDSP", - "WDSP_ATTRIBUTES", - ] - - def __init__( - self, source_path: Optional[str] = None, use_cols: Optional[List[str]] = None - ) -> None: - if not isinstance(source_path, str): - # Download in cache - logging.warning( - f"No data source specified for {self.__class__.__name__}, trying fallback." - ) - source_path = cfg.FR_WEATHER_FALLBACK - if not isinstance(use_cols, list): - use_cols = self.kept_cols - data = pd.read_csv(source_path, usecols=use_cols) - geo_df = gpd.GeoDataFrame( - data, - geometry=gpd.points_from_xy(data["LONGITUDE"], data["LATITUDE"]), - crs="EPSG:4326", - ) - # Match the polygons using the ones of each predefined country area - geo_masks = get_french_geom() - geo_data = gpd.sjoin(geo_masks, geo_df, how="inner") - # Drop NA - geo_data = geo_data.dropna(axis=1) - # Convert - geo_data["DATE"] = pd.to_datetime( - geo_data["DATE"], format="%Y-%m-%d", errors="coerce" - ) - # Drop Cols - super().__init__(geo_data.drop(["index_right", "geometry"], axis=1)) diff --git a/pyro_risks/datasets/wildfires.py b/pyro_risks/datasets/wildfires.py deleted file mode 100644 index e8c9f57..0000000 --- a/pyro_risks/datasets/wildfires.py +++ /dev/null @@ -1,43 +0,0 @@ -# Copyright (C) 2021-2022, Pyronear. - -# This program is licensed under the Apache License version 2. -# See LICENSE or go to for full license details. - -import logging -import pandas as pd -from typing import List, Optional - -from pyro_risks import config as cfg - - -__all__ = ["BDIFFHistory"] - - -class BDIFFHistory(pd.DataFrame): - """Wildfire history dataset on French territory, accessible at https://bdiff.agriculture.gouv.fr/. - - Args: - source_path: path or URL to your version of the source data - use_cols: columns to read from source - """ - - kept_cols = ["Date de première alerte", "Département", "Statut"] - - def __init__( - self, source_path: Optional[str] = None, use_cols: Optional[List[str]] = None - ) -> None: - if not isinstance(source_path, str): - # Download in cache - logging.warning( - f"No data source specified for {self.__class__.__name__}, trying fallback." - ) - source_path = cfg.FR_FIRES_FALLBACK - if not isinstance(use_cols, list): - use_cols = self.kept_cols - data = pd.read_csv(source_path, sep=";", usecols=use_cols) - tmp = pd.to_datetime( - data["Date de première alerte"], format="%Y-%m-%d %H:%M:%S", errors="coerce" - ) - data["date"] = tmp.dt.normalize() # Set time to 00:00:00 for each entry - # Drop Cols - super().__init__(data.drop(["Date de première alerte"], axis=1)) diff --git a/pyro_risks/models/__init__.py b/pyro_risks/models/__init__.py deleted file mode 100644 index c790e5f..0000000 --- a/pyro_risks/models/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -from .pipelines import * -from .transformers import * -from .utils import * diff --git a/pyro_risks/models/pipelines.py b/pyro_risks/models/pipelines.py deleted file mode 100644 index 1a2267b..0000000 --- a/pyro_risks/models/pipelines.py +++ /dev/null @@ -1,49 +0,0 @@ -# Copyright (C) 2021-2022, Pyronear. - -# This program is licensed under the Apache License version 2. -# See LICENSE or go to for full license details. - -from imblearn.pipeline import Pipeline -from .transformers import ( - TargetDiscretizer, - CategorySelector, - Imputer, - LagTransformer, - FeatureSubsetter, -) -from .utils import discretizer - -from sklearn.ensemble import RandomForestClassifier - -from xgboost import XGBClassifier - -import pyro_risks.config as cfg - -__all__ = ["rf_pipeline", "xgb_pipeline"] - -# pipeline base steps definition -base_steps = [ - ( - "filter_dep", - CategorySelector(variable=cfg.ZONE_VAR, category=cfg.SELECTED_DEP), - ), - ( - "add_lags", - LagTransformer( - date_column=cfg.DATE_VAR, - zone_column=cfg.ZONE_VAR, - columns=cfg.LAG_ERA5T_VARS, - ), - ), - ("imputer", Imputer(columns=cfg.MODEL_ERA5T_VARS, strategy="median")), - ("binarize_target", TargetDiscretizer(discretizer=discretizer)), - ("subset_features", FeatureSubsetter(columns=cfg.MODEL_ERA5T_VARS)), -] - -# Add estimator to base step lists -xgb_steps = [*base_steps, ("xgboost", XGBClassifier(**cfg.XGB_PARAMS))] -rf_steps = [*base_steps, ("random_forest", RandomForestClassifier(**cfg.RF_PARAMS))] - -# Define sklearn / imblearn pipelines -xgb_pipeline = Pipeline(xgb_steps) -rf_pipeline = Pipeline(rf_steps) diff --git a/pyro_risks/models/transformers.py b/pyro_risks/models/transformers.py deleted file mode 100644 index 395d6df..0000000 --- a/pyro_risks/models/transformers.py +++ /dev/null @@ -1,349 +0,0 @@ -# Copyright (C) 2021-2022, Pyronear. - -# This program is licensed under the Apache License version 2. -# See LICENSE or go to for full license details. - -from typing import List, Union, Optional, Tuple, Callable -from sklearn.base import BaseEstimator, TransformerMixin -from sklearn.impute import SimpleImputer -from .utils import check_xy, check_x - -import pandas as pd -import numpy as np - - -class TargetDiscretizer(BaseEstimator): - """Discretize numerical target variable. - - The `TargetDiscretizer` transformer maps target variable values to discrete values using - a user defined function. - - Parameters: - discretizer: user defined function. - """ - - def __init__(self, discretizer: Callable) -> None: - if callable(discretizer): - self.discretizer = discretizer - else: - raise TypeError(f"{self.__class__.__name__} constructor expect a callable") - - def fit_resample( - self, X: pd.DataFrame, y: pd.Series - ) -> Tuple[pd.DataFrame, pd.Series]: - """Discretize the target variable. - - The `fit_resample` method allows for discretizing the target variable. - The method does not resample the dataset, the naming convention ensure - the compatibility of the transformer with imbalanced-learn `Pipeline` - object. - - Args: - X: Training dataset features - y: Training dataset target - - Returns: - Training dataset features and target tuple. - """ - X, y = check_xy(X, y) - - y = y.apply(self.discretizer) - - return X, y - - -class CategorySelector(BaseEstimator): - """Select features and targets rows. - - The `CategorySelector` transformer select features and targets rows - belonging to given variable categories. - - Parameters: - variable: variable to be used for selection. - category: modalities to be selected. - """ - - def __init__(self, variable: str, category: Union[str, list]) -> None: - self.variable = variable - # Catch or prevent key errors - if isinstance(category, str): - self.category = [category] - elif isinstance(category, list): - self.category = category - else: - raise TypeError( - f"{self.__class__.__name__} constructor category argument expect a string or a list" - ) - - def fit_resample( - self, X: pd.DataFrame, y: Optional[pd.Series] = None - ) -> Tuple[pd.DataFrame, pd.Series]: - """Select features and targets rows. - - The `fit_resample` method allows for selecting the features and target - rows. The method does not resample the dataset, the naming convention ensure - the compatibility of the transformer with imbalanced-learn `Pipeline` - object. - - Args: - X: Training dataset features - y: Training dataset target - - Returns: - Training dataset features and target tuple. - """ - if isinstance(X, pd.DataFrame) and isinstance(y, pd.Series): - mask = X[self.variable].isin(self.category) - XR = X[mask].copy() - yr = y[mask].copy() - - else: - raise TypeError( - f"{self.__class__.__name__} fit_resample methods expect pd.DataFrame and\ - pd.Series as inputs." - ) - - return XR, yr - - -class Imputer(SimpleImputer): - """Impute missing values. - - The `Imputer` transformer wraps scikit-learn SimpleImputer transformer. - - Parameters: - missing_values: the placeholder for the missing values. - strategy: the imputation strategy (mean, median, most_frequent, constant). - fill_value: fill_value is used to replace all occurrences of missing_values (default to 0). - verbose: controls the verbosity of the imputer. - copy: If True, a copy of X will be created. - add_indicator: If True, a MissingIndicator transform will stack onto output of the imputer’s transform. - """ - - def __init__( - self, - columns: list, - missing_values: Union[int, float, str] = np.nan, - strategy: str = "mean", - fill_value: float = None, - verbose: int = 0, - copy: bool = True, - add_indicator: bool = False, - ) -> None: - super().__init__( - missing_values=missing_values, - strategy=strategy, - fill_value=fill_value, - copy=copy, - add_indicator=add_indicator, - ) - - self.columns = columns - - def fit(self, X: pd.DataFrame, y: Optional[pd.Series] = None) -> "Imputer": - """ - Fit the imputer on X. - - Args: - X: Training dataset features. - y: Training dataset target. - - Returns: - Transformer. - """ - X, y = check_xy(X[self.columns], y) - - super().fit(X, y) - return self - - def transform(self, X: pd.DataFrame) -> pd.DataFrame: - """ - Impute X missing values. - - Args: - X: Training dataset features. - - Returns: - Transformed training dataset. - """ - X = check_x(X) - XS = check_x(X[self.columns]) - - X[self.columns] = super().transform(XS) - - return X - - -class LagTransformer(BaseEstimator, TransformerMixin): - """Add lags features of the selected columns. - - Lags added correspond to day -1, -3 and -7 and are added to each department separately. - - Parameters: - date_column: date column. - zone_columns: geographical zoning column. - columns: columns to add lag. - """ - - def __init__(self, date_column: str, zone_column: str, columns: List[str]) -> None: - self.date_column = date_column - self.zone_column = zone_column - self.columns = columns - - def fit(self, X: pd.DataFrame, y: Optional[pd.Series] = None) -> "LagTransformer": - """ - Fit the imputer on X. - - Args: - X: Training dataset features. - y: Training dataset target. - - Returns: - Transformer. - """ - X, y = check_xy(X, y) - - return self - - def transform(self, X: pd.DataFrame) -> pd.DataFrame: - """ - Create lag features. - - Args: - X: Training dataset features. - - Returns: - Transformed training dataset. - """ - X = check_x(X) - - if X[self.date_column].dtypes != "datetime64[ns]": - raise TypeError( - f"{self.__class__.__name__} transforme methods expect date_column of type datetime64[ns]" - ) - - for var in self.columns: - for dep in X[self.zone_column].unique(): - tmp = X[X[self.zone_column] == dep][[self.date_column, var]].set_index( - self.date_column - ) - tmp1 = tmp.copy() - tmp1 = tmp1.join( - tmp.shift(periods=1, freq="D"), rsuffix="_lag1", how="left" - ) - tmp1 = tmp1.join( - tmp.shift(periods=3, freq="D"), rsuffix="_lag3", how="left" - ) - tmp1 = tmp1.join( - tmp.shift(periods=7, freq="D"), rsuffix="_lag7", how="left" - ) - new_vars = [var + "_lag1", var + "_lag3", var + "_lag7"] - X.loc[X[self.zone_column] == dep, new_vars] = tmp1[new_vars].values - return X - - -class FeatureSelector(BaseEstimator, TransformerMixin): - """Select features correlated to the target. - - Select features with correlation to the target above the threshold. - - Parameters: - exclude: column to exclude from correlation calculation. - method: correlation matrix calculation method. - threshold: columns on which to add lags - """ - - def __init__( - self, exclude: List[str], method: str = "pearson", threshold: float = 0.15 - ) -> None: - self.exclude = exclude - self.method = method - self.threshold = threshold - - def fit(self, X: pd.DataFrame, y: Optional[pd.Series] = None) -> "FeatureSelector": - """Fit the FeatureSelector on X. - - Compute the correlation matrix. - - Args: - X: Training dataset features. - y: Training dataset target. - - Returns: - Transformer. - """ - X, y = check_xy(X, y) - self.target_correlation = ( - pd.concat([X, y], axis=1) - .corr(method=self.method) - .loc[y.name] - .apply(abs) - .sort_values(ascending=False) - ) - self.target_correlation = self.target_correlation[ - self.target_correlation.index != y.name - ] - - return self - - def transform(self, X: pd.DataFrame) -> pd.DataFrame: - """ - Select lag features. - - Args: - X: Training dataset features. - - Returns: - Transformed training dataset. - """ - X = check_x(X) - - mask = self.target_correlation > self.threshold - self.selected_features = self.target_correlation[mask].index.tolist() - - return X[self.selected_features] - - -class FeatureSubsetter(BaseEstimator, TransformerMixin): - """Subset dataframe's column. - - Subset any given of the dataframe. - - Parameters: - threshold: columns on which to add lags - """ - - def __init__(self, columns: List[str]) -> None: - self.columns = columns - - def fit(self, X: pd.DataFrame, y: Optional[pd.Series] = None) -> "FeatureSubsetter": - """Comply with pipeline requirements. - - The method does not fit the dataset, the naming convention ensure - the compatibility of the transformer with scikit-learn `Pipeline` - object. - - Args: - X: Training dataset features. - y: Training dataset target. - - Returns: - Transformer. - """ - X, y = check_xy(X, y) - - return self - - def transform(self, X: pd.DataFrame) -> pd.DataFrame: - """ - Select columns. - - Args: - X: Training dataset features. - - Returns: - Training dataset features subset. - """ - X = check_x(X) - - return X[self.columns] diff --git a/pyro_risks/models/utils.py b/pyro_risks/models/utils.py deleted file mode 100644 index 3356b5c..0000000 --- a/pyro_risks/models/utils.py +++ /dev/null @@ -1,67 +0,0 @@ -# Copyright (C) 2021-2022, Pyronear. - -# This program is licensed under the Apache License version 2. -# See LICENSE or go to for full license details. - -from typing import Tuple -import pandas as pd - -__all__ = ["check_xy", "check_x", "discretizer"] - - -def check_xy(X: pd.DataFrame, y: pd.Series) -> Tuple[pd.DataFrame, pd.Series]: - """ - Validate inputs for transformers. - - Args: - X: Training dataset features pd.DataFrame. - y: Training dataset target pd.Series. - - Raises: - TypeError: Transformer methods expect pd.DataFrame and pd.Series as inputs. - - Returns: - Copy of the inputs. - """ - if isinstance(X, pd.DataFrame) and isinstance(y, pd.Series): - X = X.copy() - y = y.copy() - else: - raise TypeError( - "Transformer methods expect pd.DataFrame\ - and pd.Series as inputs." - ) - return X, y - - -def check_x(X: pd.DataFrame) -> pd.DataFrame: - """ - Validate inputs for tranformers. - - Args: - X: Training dataset features pd.DataFrame. - - Raises: - TypeError: Transformer methods expect pd.DataFrame as inputs. - - Returns: - Copy of the inputs. - """ - if isinstance(X, pd.DataFrame): - X = X.copy() - else: - raise TypeError("Transformer methods expect pd.DataFrame as inputs") - return X - - -def discretizer(x: float) -> int: - """ - Discretize values. - - Args: - x (float): value to be discretized - - Returns: - int: discretized value - """ - return 1 if x > 0 else 0 diff --git a/pyro_risks/pipeline/__init__.py b/pyro_risks/pipeline/__init__.py deleted file mode 100644 index f464890..0000000 --- a/pyro_risks/pipeline/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -from .load import * -from .train import * -from .predict import * -from .evaluate import * diff --git a/pyro_risks/pipeline/evaluate.py b/pyro_risks/pipeline/evaluate.py deleted file mode 100644 index 17434ef..0000000 --- a/pyro_risks/pipeline/evaluate.py +++ /dev/null @@ -1,165 +0,0 @@ -# Copyright (C) 2021-2022, Pyronear. - -# This program is licensed under the Apache License version 2. -# See LICENSE or go to for full license details. - -from typing import Union, Optional -from datetime import datetime -from sklearn.model_selection import train_test_split -from sklearn.metrics import classification_report -from plot_metric.functions import BinaryClassification -from pyro_risks.models import discretizer -from pyro_risks.pipeline.load import load_dataset - -import matplotlib.pyplot as plt -import imblearn.pipeline as pp -import pyro_risks.config as cfg - -import pandas as pd -import numpy as np - -import sys -import os -import json -import joblib - -__all__ = [ - "save_classification_reports", - "save_classification_plots", - "evaluate_pipeline", -] - - -def save_classification_reports( - y_true: np.ndarray, - y_pred: np.ndarray, - prefix: Optional[str] = None, - destination: Optional[str] = None, -) -> None: - """ - Build and save binary classification metrics reports. - - Args: - y_true: Ground truth (correct) labels. - y_pred: Predicted labels, as returned by a calibrated classifier. - prefix: Classification report prefix i.e. pipeline name. Defaults to None. - destination: Folder where the report should be saved. Defaults to ``METADATA_REGISTRY``. - """ - destination = cfg.METADATA_REGISTRY if destination is None else destination - fname = ( - "classification_report" if prefix is None else prefix + "_classification_report" - ) - json_report_path = os.path.join(destination, fname + ".json") - csv_report_path = os.path.join(destination, fname + ".csv") - - report = classification_report(y_true, y_pred, output_dict=True) - - report.pop("accuracy") - report.pop("macro avg") - report.pop("weighted avg") - - # JSON report for tracking metrics - with open(json_report_path, "w") as fp: - json.dump(obj=report, fp=fp) - - # CSV report for plotting classification report - - pd.DataFrame(report).transpose().round(3).to_csv(csv_report_path) - - print(classification_report(y_true, y_pred)) - - -def save_classification_plots( - y_true: np.ndarray, - y_proba: np.ndarray, - threshold: np.float64, - prefix: Optional[str] = None, - destination: Optional[str] = None, -) -> None: - """ - Build and save binary classification performance evaluation plots. - - Args: - y_true: Ground truth (correct) labels. - y_pred: Predicted probabilities of the positive class returned by a classifier. - threshold: Classification pipeline optimal threshold. - prefix: Classification plots prefix i.e. pipeline name. Defaults to None. - destination: Folder where the report should be saved. Defaults to ``METADATA_REGISTRY``. - """ - destination = cfg.METADATA_REGISTRY if destination is None else destination - fname = ( - "classification_plots.png" - if prefix is None - else prefix + "_classification_plots.png" - ) - path = os.path.join(destination, fname) - - bc = BinaryClassification(y_true, y_proba, labels=["No fire", "Fire"]) - - plt.figure(figsize=(15, 10)) - plt.subplot2grid(shape=(2, 6), loc=(0, 0), colspan=2) - bc.plot_roc_curve(threshold=threshold) - plt.subplot2grid((2, 6), (0, 2), colspan=2) - bc.plot_precision_recall_curve(threshold=threshold) - plt.subplot2grid((2, 6), (0, 4), colspan=2) - bc.plot_class_distribution(threshold=threshold) - plt.subplot2grid((2, 6), (1, 1), colspan=2) - bc.plot_confusion_matrix(threshold=threshold) - plt.subplot2grid((2, 6), (1, 3), colspan=2) - bc.plot_confusion_matrix(threshold=threshold, normalize=True) - - plt.savefig(path) - - -def evaluate_pipeline( - X: pd.DataFrame, - y: pd.Series, - pipeline: Union[pp.Pipeline, str], - threshold: str, - prefix: Optional[str] = None, - destination: Optional[str] = None, -) -> None: - """ - Build and save binary classification evaluation reports. - - Args: - X: Training dataset features pd.DataFrame. - y: Training dataset target pd.Series. - pipeline: imbalanced-learn preprocessing pipeline or path to pipeline. - threshold: Classification pipeline optimal threshold path. - prefix: Classification reports prefix i.e. pipeline name. Defaults to None. - destination: Folder where the report should be saved. Defaults to ``METADATA_REGISTRY``. - """ - # setup - _, X_test, _, y_test = train_test_split( - X, y, test_size=cfg.TEST_SIZE, random_state=cfg.RANDOM_STATE - ) - - if not isinstance(pipeline, pp.Pipeline): - pipeline = joblib.load(pipeline) - - y_proba = pipeline.predict_proba(X_test) - - with open(threshold, "r") as file: - optimal_threshold = json.load(file) - - def predict(x): - return 1 if x > optimal_threshold["threshold"] else 0 - - vpredict = np.vectorize(predict) - vdiscretizer = np.vectorize(discretizer) - - y_pred = vpredict(y_proba[:, 1]) - y_test = vdiscretizer(y_test) - - save_classification_reports( - y_true=y_test, y_pred=y_pred, prefix=prefix, destination=destination - ) - - save_classification_plots( - y_true=y_test, - y_proba=y_proba[:, 1], - threshold=optimal_threshold["threshold"], - prefix=prefix, - destination=destination, - ) diff --git a/pyro_risks/pipeline/load.py b/pyro_risks/pipeline/load.py deleted file mode 100644 index d479699..0000000 --- a/pyro_risks/pipeline/load.py +++ /dev/null @@ -1,64 +0,0 @@ -# Copyright (C) 2021-2022, Pyronear. - -# This program is licensed under the Apache License version 2. -# See LICENSE or go to for full license details. - -from typing import Optional, List -from pyro_risks.datasets.utils import download -from datetime import datetime -from typing import Tuple - -import pyro_risks.config as cfg -import pandas as pd -import os - -__all__ = ["load_dataset"] - - -def load_dataset( - url: Optional[str] = None, - path: Optional[str] = None, - usecols: Optional[List[str]] = None, - pipeline_cols: Optional[List[str]] = None, - destination: str = None, -) -> Tuple[pd.DataFrame, pd.Series]: - """ - Load Pyro Risks training datasets. - - Download and load Pyro Risks training datasets. - - Args: - url: Training dataset URL. Defaults to None. - path: Dataset full path. Defaults to None. - usecols: Subset of the dataset columns. Defaults to None. - pipeline_cols: Subset of the dataset used for training. Defaults to None. - destination: folder where the dataset should be saved. Defaults to None. - - Returns: - Tuple[pd.DataFrame, pd.Series] - """ - url = cfg.ERA5T_VIIRS_PIPELINE if url is None else url - path = os.path.join(cfg.DATA_REGISTRY, cfg.DATASET) if path is None else path - usecols = ( - [cfg.DATE_VAR, cfg.ZONE_VAR, cfg.TARGET] + cfg.PIPELINE_ERA5T_VARS - if usecols is None - else usecols - ) - pipeline_cols = ( - [cfg.DATE_VAR, cfg.ZONE_VAR] + cfg.PIPELINE_ERA5T_VARS - if pipeline_cols is None - else pipeline_cols - ) - destination = cfg.DATA_REGISTRY if destination is None else destination - - if not os.path.isfile(path): - download(url=url, default_extension="csv", unzip=False, destination=destination) - - df = pd.read_csv(path, usecols=usecols) - df["day"] = df["day"].apply( - lambda x: datetime.strptime(str(x), "%Y-%m-%d") if not pd.isnull(x) else x - ) - - X = df[pipeline_cols] - y = df[cfg.TARGET] - return X, y diff --git a/pyro_risks/pipeline/predict.py b/pyro_risks/pipeline/predict.py deleted file mode 100644 index 29d210e..0000000 --- a/pyro_risks/pipeline/predict.py +++ /dev/null @@ -1,269 +0,0 @@ -# Copyright (C) 2021-2022, Pyronear. - -# This program is licensed under the Apache License version 2. -# See LICENSE or go to for full license details. - -# type: ignore -from pyro_risks import config as cfg -from pyro_risks.datasets.fwi import get_fwi_data_for_predict -from pyro_risks.datasets.ERA5 import get_data_era5t_for_predict -from pyro_risks.datasets.era_fwi_viirs import process_dataset_to_predict -from typing import Optional, List -from io import BytesIO - -import pandas as pd -import dvc.api -import joblib -import logging -import os - - -__all__ = ["PyroRisk"] - - -class PyroRisk(object): - """ - Pyronear Wildfire Risk Forecaster - - Load a trained pipeline from pyrorisks remote model registry, download features from publicly - available data sources (CDS API). Forecast the local (NUTS 3 level) daily wildfire risks - (forest fire danger) in a Given Country (France). - - Args: - model: Can be 'RF' for random forest or 'XGBOOST' for xgboost. Defaults to 'RF'. - - Raises: - ValueError: Model can be only of type RF or XGBOOST - """ - - def __init__(self, model: Optional[str] = "RF") -> None: - self.inputs = None - self.model = model - self.pipeline = None - self.predictions = None - self.country = None - self.zone = None - self.predictions_registry = cfg.PREDICTIONS_REGISTRY - - if self.model == "RF": - self.model_path = cfg.RFMODEL_ERA5T_PATH # file path - elif self.model == "XGBOOST": - self.model_path = cfg.XGBMODEL_ERA5T_PATH # file path - else: - raise ValueError("Model can be only of type RF or XGBOOST") - - def get_pipeline( - self, path: Optional[str] = None, destination: Optional[str] = None - ) -> None: - """Download trained pipeline from remote model registry. - - The `get_pipeline` method downloads the selected trained pipeline from the pyrorisks remote - model registry. The downloaded pipeline is persited in the destination joblib file. - - Args: - path: Location and file name of the pipeline to download, relative to the root of the - dvc project. Defaults to None (self.model_path). - destination: Location where the pipeline is downloaded. Defaults to None (self.model_path). - """ - path = self.model_path if path is None else path - destination = self.model_path if destination is None else destination - - pipeline = joblib.load( - BytesIO( - dvc.api.read( - path=path, repo=cfg.REPO_DIR, remote="artifacts-registry", mode="rb" - ) - ) - ) - joblib.dump(pipeline, destination) - - @staticmethod - def get_inputs( - day: str, - country: Optional[str] = "France", - dir_destination: Optional[str] = None, - ) -> None: - """Download datasets and build features for forecasting daily wildfire risks on a given date. - - The `get_inputs` method downloads datsets from publicly available data sources (CDS API) and - build features for forecasting wildfire risks on a given date. The downloaded inputs are - persited in the destination csv file. - - Args: - day: Date of interest ('%Y-%m-%d') for example '2020-05-05'. - country: Country of interest. Defaults to 'France'. - destination: Location where the daily inputs are persisted. - Defaults to None (cfg.PIPELINE_INPUT_PATH). - """ - # TODO: - # Delete get_fwi_data_for_predict variables not available at predict time - # Create process_era5 function - # Create MergedEraViir class - dir_destination = ( - cfg.PREDICTIONS_REGISTRY if dir_destination is None else dir_destination - ) - fname = f"inputs_{country}_{day}.csv" - destination = os.path.join(dir_destination, fname) - fwi = get_fwi_data_for_predict(day) - era = get_data_era5t_for_predict(day) - res_test = process_dataset_to_predict(fwi, era) - res_test = res_test.rename({"nom": "departement"}, axis=1) - res_test.to_csv(destination) - - def load_pipeline(self, path: Optional[str] = None) -> None: - """Load trained pipeline from local path. - - Args: - path: Location where the pipeline has been downloaded. Defaults to None (self.model_path). - """ - path = self.model_path if path is None else path - - if os.path.isfile(path): - self.pipeline = joblib.load(path) - else: - self.get_pipeline(destination=path) - self.pipeline = joblib.load(path) - - def load_inputs( - self, - day: str, - country: Optional[str] = "France", - usecols: Optional[List[str]] = None, - dir_path: Optional[str] = None, - ) -> None: - """Load inputs from local path. - - Args: - day: Date of interest ('%Y-%m-%d') for example '2020-05-05'. - country: Country of interest. Defaults to 'France'. - dir_path: Location where the daily inputs have been persisted. Defaults to None - (cfg.PREDICTIONS_REGISTRY). - """ - dir_path = cfg.PREDICTIONS_REGISTRY if dir_path is None else dir_path - usecols = cfg.PIPELINE_COLS if usecols is None else usecols - fname = f"inputs_{country}_{day}.csv" - - path = os.path.join(dir_path, fname) - - if os.path.isfile(path): - self.inputs = pd.read_csv(path, usecols=usecols) - else: - self.get_inputs(day=day, country=country, dir_destination=dir_path) - self.inputs = pd.read_csv(path, usecols=usecols) - self.inputs[cfg.DATE_VAR] = pd.to_datetime(self.inputs[cfg.DATE_VAR]) - - def predict( - self, - day: str, - country: Optional[str] = "France", - zone_column: Optional[str] = cfg.ZONE_VAR, - dir_destination: Optional[str] = None, - ) -> None: - """Predict local daily wildfire risks in a given country. - - Forecast the local (NUTS 3 level) daily wildfire risks (forest fire danger) in a given - country (France). Note that predictions on fwi and era5land data queried from CDS API - will return 93 departments instead of 96 for France. - - Args: - day: Date of interest ('%Y-%m-%d') for example '2020-05-05'. - country: Country of interest. Defaults to 'France'. - dir_destination: Location where the daily inputs are persisted. - Defaults to None (cfg.PREDICTIONS_REGISTRY). - """ - path = ( - os.path.join(dir_destination, f"{self.model}.joblib") - if dir_destination is not None - else os.path.join(cfg.PREDICTIONS_REGISTRY, f"{self.model}.joblib") - ) - self.load_pipeline(path=path) - self.load_inputs(day=day, country=country, dir_path=dir_destination) - - fname = f"{self.model}_predictions_{country}_{day}.joblib" - destination = os.path.join(dir_destination, fname) - - if self.model == "RF": - self.predictions = self.pipeline.predict_proba(self.inputs) - res = dict(zip(self.inputs[zone_column], self.predictions[:, 1].round(3))) - elif self.model == "XGBOOST": - self.predictions = self.pipeline.predict_proba(self.inputs) - res = dict(zip(self.inputs[zone_column], self.predictions.round(3))) - logging.info( - f"Predict {country} local wildfire risks on {day}, using {self.model} pipeline." - ) - joblib.dump(res, destination) - - def get_predictions( - self, - day: str, - country: Optional[str] = "France", - dir_path: Optional[str] = None, - dir_destination: Optional[str] = None, - ) -> None: - """Download predictions for the day of interest from the remote prediction registry. - - The `get_predictions` method downloads the forecasted local wildfire risks at a given - day in a given country (France). The downloaded predictions are persited in the - destination joblib file. - - Args: - day: Date of interest ('%Y-%m-%d') for example '2020-05-05'. - country: Country of interest. Defaults to 'France'. - dir_path: Location of the predictions to download, relative to the root of the dvc project. - Defaults to None. - dir_destination: Location where the daily predictions are persisted. Defaults to None. - """ - dir_path = cfg.PREDICTIONS_REGISTRY if dir_path is None else dir_path - dir_destination = ( - cfg.PREDICTIONS_REGISTRY if dir_destination is None else dir_destination - ) - fname = f"{self.model}_predictions_{country}_{day}.joblib" - destination = os.path.join(dir_destination, fname) - path = os.path.join(dir_path, fname) - - predictions = joblib.load( - BytesIO( - dvc.api.read( - path=path, repo=cfg.REPO_DIR, remote="artifacts-registry", mode="rb" - ) - ) - ) - joblib.dump(predictions, destination) - - def expose_predictions( - self, - day: str, - country: Optional[str] = "France", - dir_path: Optional[str] = None, - dir_destination: Optional[str] = None, - ) -> dict: - """Serves a prediction for the specified day. - - Args: - day: Date of interest ('%Y-%m-%d') for example '2020-05-05'. - country: Country of interest. Defaults to 'France'. - dir_path: Location of the predictions to download, relative to the root of the dvc project. - Defaults to None. - - Returns: - dict[dict]: keys are departements, values dictionaries whose keys are score and explainability - and values probability predictions for label 1 (fire) and feature contributions to predictions - respectively. - """ - fname = f"{self.model}_predictions_{country}_{day}.joblib" - path = os.path.join(dir_destination, fname) - - if os.path.isfile(path): - self.predictions = joblib.load(path) - else: - self.get_predictions( - day=day, - country=country, - dir_path=dir_path, - dir_destination=dir_destination, - ) - self.predictions = joblib.load(path) - return { - x: {"score": self.predictions[x], "explainability": None} - for x in self.predictions - } diff --git a/pyro_risks/pipeline/train.py b/pyro_risks/pipeline/train.py deleted file mode 100644 index b960546..0000000 --- a/pyro_risks/pipeline/train.py +++ /dev/null @@ -1,159 +0,0 @@ -# Copyright (C) 2021-2022, Pyronear. - -# This program is licensed under the Apache License version 2. -# See LICENSE or go to for full license details. - -from typing import Union, Optional -from sklearn.model_selection import train_test_split -from sklearn.metrics import precision_recall_curve -from sklearn.utils import estimator_html_repr -from pyro_risks.models import xgb_pipeline, rf_pipeline, discretizer -from pyro_risks.pipeline.load import load_dataset -from datetime import datetime -import imblearn.pipeline as pp -import pyro_risks.config as cfg - -import sys -import pandas as pd -import numpy as np - -import os -import time -import json -import joblib - -__all__ = ["calibrate_pipeline", "save_pipeline", "train_pipeline"] - - -def calibrate_pipeline( - y_test: Union[pd.Series, np.ndarray], - y_scores: Union[pd.Series, np.ndarray], - ignore_prints: Optional[bool] = False, -) -> np.float64: - """ - Calibrate Classification Pipeline. - - Args: - y_test: Binary test target. - y_scores: Predicted probabilities from the test set. - ignore_prints: Whether to print results. Defaults to False. - - Returns: - Threshold maximizing the f1-score. - """ - precision, recall, thresholds = precision_recall_curve(y_test, y_scores[:, 1]) - fscore = (2 * precision * recall) / (precision + recall) - ix = np.argmax(fscore) - - if not ignore_prints: - print(f"Best Threshold={thresholds[ix]}, F-Score={fscore[ix]}") - - return thresholds[ix] - - -def save_pipeline( - pipeline: pp.Pipeline, - model: str, - optimal_threshold: np.float64, - destination: Optional[str] = None, - ignore_html: Optional[bool] = False, -) -> None: - """ - Serialize pipeline. - - Args: - pipeline: imbalanced-learn preprocessing pipeline. - model: model name. - optimal_threshold: model calibration optimal threshold. - destination: folder where the pipeline should be saved. Defaults to 'cfg.MODEL_REGISTRY'. - ignore_html: Persist pipeline html description. Defaults to False. - """ - threshold = {"threshold": float(optimal_threshold)} - registry = cfg.MODEL_REGISTRY if destination is None else destination - pipeline_fname = f"{model}.joblib" - threshold_fname = f"{model}_threshold.json" - html_fname = f"{model}_pipeline.html" - - if not os.path.exists(registry): - os.makedirs(registry) - - joblib.dump(pipeline, os.path.join(registry, pipeline_fname)) - - with open(registry + "/" + threshold_fname, "w") as file: - json.dump(threshold, file) - - if not ignore_html: - with open(registry + "/" + html_fname, "w") as file: - file.write(estimator_html_repr(pipeline)) - - -def train_pipeline( - X: pd.DataFrame, - y: pd.Series, - model: str, - pipeline: Optional[pp.Pipeline] = None, - destination: Optional[str] = None, - ignore_prints: Optional[bool] = False, - ignore_html: Optional[bool] = False, -) -> None: - """ - Train a classification pipeline. - - Args: - X: Training dataset features pd.DataFrame. - y: Training dataset target pd.Series. - model: model name. - pipeline: imbalanced-learn preprocessing pipeline. Defaults to None. - destination: folder where the pipeline should be saved. Defaults to 'cfg.MODEL_REGISTRY'. - ignore_prints: Whether to print results. Defaults to False. - ignore_html: Persist pipeline html description. Defaults to False. - """ - X_train, X_test, y_train, y_test = train_test_split( - X, y, test_size=cfg.TEST_SIZE, random_state=cfg.RANDOM_STATE - ) - - vdiscretizer = np.vectorize(discretizer) - - if model == "RF": - rf_pipeline.fit(X_train, y_train) - y_scores = rf_pipeline.predict_proba(X_test) - optimal_threshold = calibrate_pipeline( - y_test=vdiscretizer(y_test), y_scores=y_scores, ignore_prints=ignore_prints - ) - save_pipeline( - pipeline=rf_pipeline, - model=model, - optimal_threshold=optimal_threshold, - destination=destination, - ignore_html=ignore_html, - ) - - elif model == "XGBOOST": - xgb_pipeline.fit( - X_train, y_train, xgboost__eval_metric=cfg.XGB_FIT_PARAMS["eval_metric"] - ) - y_scores = xgb_pipeline.predict_proba(X_test) - optimal_threshold = calibrate_pipeline( - y_test=vdiscretizer(y_test), y_scores=y_scores, ignore_prints=ignore_prints - ) - save_pipeline( - pipeline=xgb_pipeline, - model=model, - optimal_threshold=optimal_threshold, - destination=destination, - ignore_html=ignore_html, - ) - - elif model not in ["RF", "XGBOOST"] and pipeline is not None: - pipeline.fit(X_train, y_train) - y_scores = pipeline.predict_proba(X_test) - optimal_threshold = calibrate_pipeline( - y_test=vdiscretizer(y_test), y_scores=y_scores, ignore_prints=ignore_prints - ) - save_pipeline( - pipeline=pipeline, - model=model, - optimal_threshold=optimal_threshold, - destination=destination, - ignore_html=ignore_html, - ) diff --git a/setup.py b/setup.py deleted file mode 100644 index 3d61bc4..0000000 --- a/setup.py +++ /dev/null @@ -1,70 +0,0 @@ -# Copyright (C) 2021-2022, Pyronear. - -# This program is licensed under the Apache License version 2. -# See LICENSE or go to for full license details. - -#!usr/bin/python - -""" -Package installation setup -""" - -import os -import subprocess -from setuptools import setup, find_packages - -PACKAGE_NAME = "pyro_risks" -VERSION = "0.0.1" - - -with open("README.md") as f: - readme = f.read() - -requirements = [ - "boto3==1.28.45", - "botocore==1.31.45", - "click==8.1.7", - "geopandas==0.13.2", - "pandas==2.1.0", - "python-dotenv==1.0.0", - "rasterio==1.3.9", - "requests==2.31.0", - "numpy==1.26.4", -] - -setup( - name=PACKAGE_NAME, - version=VERSION, - author="Pyronear Contributors", - description="Pre-processing pipelines and models for wildfire forecasting and monitoring", - long_description=readme, - long_description_content_type="text/markdown", - url="https://github.com/pyronear/pyro-risks", - download_url="https://github.com/pyronear/pyro-risks/tags", - license="GPLv3", - entry_points={"console_scripts": ["pyrorisks = pyro_risks.main:main"]}, - classifiers=[ - "Development Status :: 2 - Pre-Alpha", - "Intended Audience :: Developers", - "Intended Audience :: Science/Research", - "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", - "Natural Language :: English", - "Operating System :: OS Independent", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.6", - "Programming Language :: Python :: 3.7", - "Topic :: Scientific/Engineering", - "Topic :: Scientific/Engineering :: Mathematics", - "Topic :: Scientific/Engineering :: Artificial Intelligence", - "Topic :: Software Development", - "Topic :: Software Development :: Libraries", - "Topic :: Software Development :: Libraries :: Python Modules", - ], - keywords=["data science", "time series", "machine learning"], - packages=find_packages(exclude=("test",)), - zip_safe=True, - python_requires=">=3.6.0", - include_package_data=True, - install_requires=requirements, - package_data={"": ["LICENSE"]}, -) From 16467db30a155e4d9d41f1fa1074a248ce16e872 Mon Sep 17 00:00:00 2001 From: Joshua Sant'Anna <45068597+jsakv@users.noreply.github.com> Date: Tue, 2 Jul 2024 16:26:24 +0200 Subject: [PATCH 05/41] refactor: Remove pyro_risks CLI --- pyro_risks/main.py | 144 --------------------------------------------- 1 file changed, 144 deletions(-) delete mode 100644 pyro_risks/main.py diff --git a/pyro_risks/main.py b/pyro_risks/main.py deleted file mode 100644 index 26bae51..0000000 --- a/pyro_risks/main.py +++ /dev/null @@ -1,144 +0,0 @@ -# Copyright (C) 2021-2022, Pyronear. - -# This program is licensed under the Apache License version 2. -# See LICENSE or go to for full license details. - -# type: ignore -from pyro_risks.datasets.utils import download -from pyro_risks.pipeline import load_dataset, train_pipeline, evaluate_pipeline -from pyro_risks.pipeline import PyroRisk -from datetime import date - -import pyro_risks.config as cfg -import click - - -@click.group() -def main(): - pass - - -@main.group(name="download") -def download_main(): - pass - - -@download_main.command(name="dataset") -@click.option("--url", default=cfg.ERA5T_VIIRS_PIPELINE, help="Dataset URL") -@click.option( - "--extension", "default_extension", default="csv", help="Dataset file extension" -) -@click.option( - "--unzip", - is_flag=True, - default=False, - help="Wether the dataset file should be unzip or not", -) -@click.option( - "--destination", default=cfg.DATA_REGISTRY, help="Dataset registry local path" -) -def _download_dataset(url: str, default_extension: str, unzip: bool, destination: str): - click.echo(f"Download {cfg.DATASET} dataset in {destination}") - download( - url=url, - default_extension=default_extension, - unzip=unzip, - destination=destination, - ) - - -@download_main.command(name="inputs") -@click.option("--day", help="Date of interest (%Y-%m-%d) for example 2020-05-05") -@click.option("--country", default="France", help="Country of interest") -@click.option( - "--directory", default=cfg.PREDICTIONS_REGISTRY, help="Dataset registry local path" -) -def _download_inputs(day: str, country: str, directory: str): - day = day if day is not None else date.today().strftime("%Y-%m-%d") - pyrorisk = PyroRisk() - location = "default directory" if directory is None else directory - click.echo(f"Download inputs in {location} to fire risks in {country} on {day}") - pyrorisk.get_inputs(day=day, country=country, dir_destination=directory) - click.echo("The fire risks inputs are downloaded") - - -@main.command(name="train") -@click.option("--model", help="Classification Pipeline name RF, XGBOOST") -@click.option( - "--destination", - default=cfg.MODEL_REGISTRY, - help="Destination folder for persisting pipeline.", -) -@click.option( - "--ignore_prints/--print", is_flag=True, help="Whether to print results or not." -) -@click.option( - "--ignore_html/--html", is_flag=True, help="Persist pipeline html description." -) -def _train_pipeline( - model: str, destination: str, ignore_prints: bool, ignore_html: bool -) -> None: - click.echo(f"Train and save pipeline in {destination}") - X, y = load_dataset() - train_pipeline( - X=X, - y=y, - model=model, - destination=destination, - ignore_prints=ignore_prints, - ignore_html=ignore_html, - ) - - -@main.command(name="evaluate") -@click.option("--pipeline", help="Pipeline location path.") -@click.option("--threshold", help="Classification pipeline optimal threshold path.") -@click.option("--prefix", help="Classification reports prefix i.e. pipeline name.") -@click.option( - "--destination", - default=cfg.METADATA_REGISTRY, - help="Folder where the report should be saved.", -) -def _evaluate_pipeline( - pipeline: str, threshold: str, prefix: str, destination: str -) -> None: - click.echo(f"Evaluate and save pipeline performance metrics in {destination}") - X, y = load_dataset() - evaluate_pipeline( - X=X, - y=y, - pipeline=pipeline, - threshold=threshold, - prefix=prefix, - destination=destination, - ) - - -@main.command(name="predict") -@click.option( - "--model", - default="RF", - help="trained pipeline from pyrorisks remote model default to RF", -) -@click.option("--day", help="Date of interest (%Y-%m-%d) for example 2020-05-05") -@click.option("--country", default="France", help="Country of interest") -@click.option("--zone", default=cfg.ZONE_VAR, help="Territorial unit variable") -@click.option( - "--directory", - default=cfg.PREDICTIONS_REGISTRY, - help="Predictions registry local path", -) -def _predict(model: str, day: str, country: str, zone: str, directory: str): - day = day if day is not None else date.today().strftime("%Y-%m-%d") - pyrorisk = PyroRisk(model=model) - click.echo(f"Start predictions with the trained {pyrorisk.model} pipeline") - pyrorisk.predict( - day=day, country=country, zone_column=zone, dir_destination=directory - ) - click.echo( - f"Predictions are persisted in {directory}{pyrorisk.model}_prediction_{country}_{day}.joblib" - ) - - -if __name__ == "__main__": - main() From f0260de5d585d67bd65714ba4e63d27d82425915 Mon Sep 17 00:00:00 2001 From: Joshua Sant'Anna <45068597+jsakv@users.noreply.github.com> Date: Tue, 2 Jul 2024 16:28:59 +0200 Subject: [PATCH 06/41] refactor: Deprecate example scripts --- scripts/example_ERA5_FIRMS.py | 116 ------------------------- scripts/example_ERA5_VIIRS.py | 126 ---------------------------- scripts/example_NASA_FIRMS.py | 115 ------------------------- scripts/example_scorev0.py | 41 --------- scripts/example_weather_wildfire.py | 84 ------------------- 5 files changed, 482 deletions(-) delete mode 100644 scripts/example_ERA5_FIRMS.py delete mode 100644 scripts/example_ERA5_VIIRS.py delete mode 100644 scripts/example_NASA_FIRMS.py delete mode 100644 scripts/example_scorev0.py delete mode 100644 scripts/example_weather_wildfire.py diff --git a/scripts/example_ERA5_FIRMS.py b/scripts/example_ERA5_FIRMS.py deleted file mode 100644 index 8116725..0000000 --- a/scripts/example_ERA5_FIRMS.py +++ /dev/null @@ -1,116 +0,0 @@ -# Copyright (C) 2021-2022, Pyronear. - -# This program is licensed under the Apache License version 2. -# See LICENSE or go to for full license details. - -from pyro_risks.datasets import NASAFIRMS, ERA5Land -from pyro_risks.datasets.datasets_mergers import ( - merge_datasets_by_departements, - merge_datasets_by_closest_weather_point, -) -from pyro_risks.datasets.utils import get_intersection_range - - -def main(args): - weather = ERA5Land(args.ERA5) - nasa_firms = NASAFIRMS(args.nasa_firms, args.nasa_firms_type) - print(weather.shape) - print(nasa_firms.shape) - - # Time span selection - date_range = get_intersection_range(weather.time, nasa_firms.acq_date) - weather = weather[weather.time.isin(date_range)] - nasa_firms = nasa_firms[nasa_firms.acq_date.isin(date_range)] - - print(weather.shape) - print(nasa_firms.shape) - - # Merge - if args.type_of_merged == "departements": - # drop redundant columns with weather datasets - nasa_firms = nasa_firms.drop(["nom"], axis=1) - merged_data = merge_datasets_by_departements( - weather, "time", "code", nasa_firms, "acq_date", "code", "left" - ) - to_drop = [ - "acq_date", - "latitude_y", - "longitude_y", - "bright_t31", - "frp", - "acq_date_time", - "confidence", - ] - - else: - # drop redundant columns with weather datasets - nasa_firms = nasa_firms.drop(["code", "nom"], axis=1) - merged_data = merge_datasets_by_closest_weather_point( - weather, "time", nasa_firms, "acq_date" - ) - to_drop = [ - "closest_weather_point", - "acq_date", - "latitude_y", - "longitude_y", - "bright_t31", - "frp", - "acq_date_time", - "confidence", - "weather_lat", - "weather_lon", - ] - - final_data = merged_data.copy() - where = merged_data["confidence"] >= 60 - final_data.loc[where, "Statut"] = 1 - final_data.loc[~where, "Statut"] = 0 - final_data["Statut"] = final_data["Statut"].astype(int) - - # drop unnecessary columns - final_data = final_data.drop(to_drop, axis=1) - - print(final_data) - - -def parse_args(): - import argparse - - parser = argparse.ArgumentParser( - description="Pyronear wildfire history example based on NASA FIRMS and ERA5 Land", - formatter_class=argparse.ArgumentDefaultsHelpFormatter, - ) - - parser.add_argument( - "--ERA5", default=None, type=str, help="path or URL of ERA5 Land source" - ) - - parser.add_argument( - "--nasa_firms", - default=None, - type=str, - help="path or URL of NASA FIRMS data source", - ) - - parser.add_argument( - "--nasa_firms_type", - default="json", - type=str, - help="type of NASA FIRMS data source", - ) - - parser.add_argument( - "--type_of_merged", - default="proximity", - type=str, - help="type of merged between weather and fire datasets: either departements or proximity", - ) - - args = parser.parse_args() - - return args - - -if __name__ == "__main__": - args = parse_args() - main(args) diff --git a/scripts/example_ERA5_VIIRS.py b/scripts/example_ERA5_VIIRS.py deleted file mode 100644 index 84adf9f..0000000 --- a/scripts/example_ERA5_VIIRS.py +++ /dev/null @@ -1,126 +0,0 @@ -# Copyright (C) 2021-2022, Pyronear. - -# This program is licensed under the Apache License version 2. -# See LICENSE or go to for full license details. - -from pyro_risks.datasets import NASAFIRMS_VIIRS, ERA5Land -from pyro_risks.datasets.datasets_mergers import ( - merge_datasets_by_departements, - merge_by_proximity, -) -from pyro_risks.datasets.utils import get_intersection_range - - -def main(args): - weather = ERA5Land(args.ERA5) - nasa_firms = NASAFIRMS_VIIRS(args.nasa_firms, args.nasa_firms_type) - print(weather.shape) - print(nasa_firms.shape) - - # Time span selection - date_range = get_intersection_range(weather.time, nasa_firms.acq_date) - weather = weather[weather.time.isin(date_range)] - nasa_firms = nasa_firms[nasa_firms.acq_date.isin(date_range)] - - print(weather.shape) - print(nasa_firms.shape) - - # Keep only vegetation wildfires and remove thermal anomalies with low confidence - where = (nasa_firms["confidence"] != "l") & (nasa_firms["type"] == 0) - nasa_firms = nasa_firms[where] - - # Merge - if args.type_of_merged == "departements": - # drop redundant columns with weather datasets - nasa_firms = nasa_firms.drop(["nom"], axis=1) - merged_data = merge_datasets_by_departements( - weather, "time", "code", nasa_firms, "acq_date", "code", "left" - ) - to_drop = [ - "acq_date", - "latitude_y", - "longitude_y", - "bright_ti4", - "confidence", - "bright_ti5", - "frp", - "type", - "acq_date_time", - ] - - else: - # drop redundant columns with weather datasets - nasa_firms = nasa_firms.drop(["code", "nom"], axis=1) - merged_data = merge_by_proximity( - nasa_firms, "acq_date", weather, "time", "right" - ) - to_drop = [ - "latitude_x", - "longitude_x", - "closest_lat", - "closest_lon", - "acq_date", - "bright_ti4", - "confidence", - "bright_ti5", - "frp", - "type", - "acq_date_time", - ] - - final_data = merged_data.copy() - where = merged_data["confidence"].isna() - final_data.loc[~where, "Statut"] = 1 - final_data.loc[where, "Statut"] = 0 - final_data["Statut"] = final_data["Statut"].astype(int) - - # drop unnecessary columns - final_data = final_data.drop(to_drop, axis=1) - final_data = final_data.rename( - columns={"latitude_y": "latitude", "longitude_y": "longitude"} - ) - - print(final_data) - - -def parse_args(): - import argparse - - parser = argparse.ArgumentParser( - description="Pyronear wildfire history example based on NASA FIRMS and ERA5 Land", - formatter_class=argparse.ArgumentDefaultsHelpFormatter, - ) - - parser.add_argument( - "--ERA5", default=None, type=str, help="path or URL of ERA5 Land source" - ) - - parser.add_argument( - "--nasa_firms", - default=None, - type=str, - help="path or URL of NASA FIRMS data source", - ) - - parser.add_argument( - "--nasa_firms_type", - default="csv", - type=str, - help="type of NASA FIRMS data source", - ) - - parser.add_argument( - "--type_of_merged", - default="proximity", - type=str, - help="type of merged between weather and fire datasets: either departements or proximity", - ) - - args = parser.parse_args() - - return args - - -if __name__ == "__main__": - args = parse_args() - main(args) diff --git a/scripts/example_NASA_FIRMS.py b/scripts/example_NASA_FIRMS.py deleted file mode 100644 index a765349..0000000 --- a/scripts/example_NASA_FIRMS.py +++ /dev/null @@ -1,115 +0,0 @@ -# Copyright (C) 2021-2022, Pyronear. - -# This program is licensed under the Apache License version 2. -# See LICENSE or go to for full license details. - -from pyro_risks.datasets import NASAFIRMS, NOAAWeather -from pyro_risks.datasets.datasets_mergers import ( - merge_datasets_by_closest_weather_station, - merge_datasets_by_departements, -) -from pyro_risks.datasets.utils import get_intersection_range - - -def main(args): - weather = NOAAWeather(args.weather) - nasa_firms = NASAFIRMS(args.nasa_firms, args.nasa_firms_type) - print(weather.shape) - print(nasa_firms.shape) - - # Time span selection - date_range = get_intersection_range(weather.DATE, nasa_firms.acq_date) - weather = weather[weather.DATE.isin(date_range)] - nasa_firms = nasa_firms[nasa_firms.acq_date.isin(date_range)] - - print(weather.shape) - print(nasa_firms.shape) - - # Merge - if args.type_of_merged == "departements": - # drop redundant columns with weather datasets - nasa_firms = nasa_firms.drop(["nom"], axis=1) - merged_data = merge_datasets_by_departements( - weather, "DATE", "code", nasa_firms, "acq_date", "code", "left" - ) - to_drop = [ - # 'closest_weather_station', - "acq_date", - "latitude", - "longitude", - "bright_t31", - "frp", - "acq_date_time", - "confidence", - ] - - else: - # drop redundant columns with weather datasets - nasa_firms = nasa_firms.drop(["code", "nom"], axis=1) - merged_data = merge_datasets_by_closest_weather_station( - weather, "DATE", nasa_firms, "acq_date" - ) - to_drop = [ - "closest_weather_station", - "acq_date", - "latitude", - "longitude", - "bright_t31", - "frp", - "acq_date_time", - "confidence", - ] - - final_data = merged_data.copy() - where = merged_data["confidence"] >= 60 - final_data.loc[where, "Statut"] = 1 - final_data.loc[~where, "Statut"] = 0 - final_data["Statut"] = final_data["Statut"].astype(int) - - # drop unnecessary columns - final_data = final_data.drop(to_drop, axis=1) - - print(final_data) - - -def parse_args(): - import argparse - - parser = argparse.ArgumentParser( - description="Pyronear wildfire history example based on NASA FIRMS", - formatter_class=argparse.ArgumentDefaultsHelpFormatter, - ) - - parser.add_argument( - "--weather", default=None, type=str, help="path or URL of NOAA weather source" - ) - - parser.add_argument( - "--nasa_firms", - default=None, - type=str, - help="path or URL of NASA FIRMS data source", - ) - - parser.add_argument( - "--nasa_firms_type", - default="json", - type=str, - help="type of NASA FIRMS data source", - ) - - parser.add_argument( - "--type_of_merged", - default="departements", - type=str, - help="type of merged between weather and fire datasets: either departements or proximity", - ) - - args = parser.parse_args() - - return args - - -if __name__ == "__main__": - args = parse_args() - main(args) diff --git a/scripts/example_scorev0.py b/scripts/example_scorev0.py deleted file mode 100644 index ab64dff..0000000 --- a/scripts/example_scorev0.py +++ /dev/null @@ -1,41 +0,0 @@ -# Copyright (C) 2021-2022, Pyronear. - -# This program is licensed under the Apache License version 2. -# See LICENSE or go to for full license details. - -from pyro_risks.datasets import MergedEraFwiViirs -from pyro_risks.models.score_v0 import ( - add_lags, - prepare_dataset, - train_random_forest, - split_train_test, - xgb_model, -) - -SELECTED_DEP = [ - "Pyrénées-Atlantiques", - "Hautes-Pyrénées", - "Ariège", - "Haute-Corse", - "Lozère", - "Gard", - "Hérault", - "Bouches-du-Rhônes", - "Pyrénées-Orientales", - "Cantal", - "Alpes-Maritimes", - "Aveyron", -] - - -def run(): - df = MergedEraFwiViirs() - df_lags = add_lags(df, df.drop(["day", "departement", "fires"], axis=1).columns) - X, y = prepare_dataset(df_lags, selected_dep=SELECTED_DEP) - X_train, X_test, y_train, y_test = split_train_test(X, y) - train_random_forest(X_train, X_test, y_train, y_test, ignore_prints=False) - xgb_model(X_train, y_train, X_test, y_test, ignore_prints=False) - - -if __name__ == "__main__": - run() diff --git a/scripts/example_weather_wildfire.py b/scripts/example_weather_wildfire.py deleted file mode 100644 index 1142319..0000000 --- a/scripts/example_weather_wildfire.py +++ /dev/null @@ -1,84 +0,0 @@ -# Copyright (C) 2021-2022, Pyronear. - -# This program is licensed under the Apache License version 2. -# See LICENSE or go to for full license details. - -from pyro_risks.datasets import NOAAWeather, BDIFFHistory -from pyro_risks.datasets.datasets_mergers import merge_datasets_by_departements -from pyro_risks.datasets.utils import get_intersection_range - - -def main(args): - weather = NOAAWeather(args.weather) - history = BDIFFHistory(args.wildfire) - - # Time span selection - date_range = get_intersection_range(weather.DATE, history.date) - weather = weather[weather.DATE.isin(date_range)] - history = history[history.date.isin(date_range)] - - # Merge - df = merge_datasets_by_departements( - weather, "DATE", "code", history, "date", "Département", "left" - ) - - # Label data - df.Statut = 1 - df.Statut.isna().astype(int) - - df = df.filter( - items=[ - "DATE", - "code", - "nom", - "LATITUDE", - "LONGITUDE", - "ELEVATION", - "DEWP", - "DEWP_ATTRIBUTES", - "FRSHTT", - "GUST", - "MAX", - "MIN", - "MXSPD", - "PRCP", - "SLP", - "SLP_ATTRIBUTES", - "SNDP", - "STP", - "STP_ATTRIBUTES", - "TEMP", - "TEMP_ATTRIBUTES", - "VISIB", - "VISIB_ATTRIBUTES", - "WDSP", - "WDSP_ATTRIBUTES", - "Statut", - ] - ) - - print(df) - - -def parse_args(): - import argparse - - parser = argparse.ArgumentParser( - description="Pyronear weather & wildfire history example", - formatter_class=argparse.ArgumentDefaultsHelpFormatter, - ) - - parser.add_argument( - "--weather", default=None, type=str, help="path or URL of NOAA weather source" - ) - parser.add_argument( - "--wildfire", default=None, type=str, help="path or URL of BDIFF history source" - ) - - args = parser.parse_args() - - return args - - -if __name__ == "__main__": - args = parse_args() - main(args) From 75f7a64e88d56a06be9eb7a0884341a4c6a58bf8 Mon Sep 17 00:00:00 2001 From: Joshua Sant'Anna <45068597+jsakv@users.noreply.github.com> Date: Tue, 2 Jul 2024 16:32:43 +0200 Subject: [PATCH 07/41] refactor: Deprecate pyro_risks tests --- test/test_datasets.py | 500 ------------------------------- test/test_evaluate.py | 90 ------ test/test_load.py | 25 -- test/test_main.py | 133 -------- test/test_models_transformers.py | 234 --------------- test/test_models_utils.py | 29 -- test/test_predict.py | 168 ----------- test/test_train.py | 123 -------- 8 files changed, 1302 deletions(-) delete mode 100644 test/test_datasets.py delete mode 100644 test/test_evaluate.py delete mode 100644 test/test_load.py delete mode 100644 test/test_main.py delete mode 100644 test/test_models_transformers.py delete mode 100644 test/test_models_utils.py delete mode 100644 test/test_predict.py delete mode 100644 test/test_train.py diff --git a/test/test_datasets.py b/test/test_datasets.py deleted file mode 100644 index 29b4379..0000000 --- a/test/test_datasets.py +++ /dev/null @@ -1,500 +0,0 @@ -# Copyright (C) 2021-2022, Pyronear. - -# This program is licensed under the Apache License version 2. -# See LICENSE or go to for full license details. - -import unittest - -import numpy as np -import pandas as pd -import tempfile -import requests -import tarfile -import gzip -import csv -import os - -from pandas.testing import assert_frame_equal - -from io import BytesIO -from pathlib import Path - -from zipfile import ZipFile -from unittest.mock import patch -from geopandas import GeoDataFrame - -import urllib.request -import json - -from pyro_risks import config as cfg -from pyro_risks.datasets import ( - masks, - weather, - wildfires, - utils, - nasa_wildfires, - fwi, - ERA5, - era_fwi_viirs, - queries_api, -) -from pyro_risks.datasets.datasets_mergers import ( - merge_datasets_by_departements, - merge_datasets_by_closest_weather_station, - merge_datasets_by_closest_weather_point, - merge_by_proximity, -) - - -class UtilsTester(unittest.TestCase): - def _test_get_intersection_range(self, s1, s2, expected_len): - date_range = utils.get_intersection_range(s1, s2) - self.assertIsInstance(date_range, pd.DatetimeIndex) - self.assertEqual(len(date_range), expected_len) - - # Template unittest - def test_get_intersection_range(self): - # Non-intersecting series - s1 = pd.Series(pd.date_range("2020-01-01", "2020-08-31")) - s2 = pd.Series(pd.date_range("2020-09-01", "2020-11-01")) - self.assertRaises(ValueError, utils.get_intersection_range, s1, s2) - - # s2 included in s1 - s1 = pd.Series(pd.date_range("2020-01-01", "2020-12-31")) - s2 = pd.Series(pd.date_range("2020-09-01", "2020-09-30")) - self._test_get_intersection_range(s1, s2, 30) - - # s2 included in s1 - s1 = pd.Series(pd.date_range("2020-09-01", "2020-11-01")) - s2 = pd.Series(pd.date_range("2020-10-01", "2020-12-01")) - self._test_get_intersection_range(s1, s2, 32) - - def test_load_data(self): - with tempfile.TemporaryDirectory() as destination: - fwi.load_data(output_path=destination) - self.assertTrue( - Path(destination, "fwi_unzipped/JRC_FWI_20190101.nc").is_file() - ) - - def test_get_fwi_data(self): - with tempfile.TemporaryDirectory() as tmp: - fwi.load_data(output_path=tmp) - df = fwi.get_fwi_data(source_path=tmp) - self.assertIsInstance(df, pd.DataFrame) - self.assertEqual(df.shape, (26538, 11)) - - def test_create_departement_df(self): - test_data = pd.DataFrame( - { - "latitude": { - 0: 47.978, - 1: 46.783, - 2: 43.760, - }, - "longitude": { - 0: 5.132, - 1: 4.710, - 2: 1.335, - }, - "fwi": {0: 6.7, 1: 0.3, 2: 8.9}, - } - ) - res = fwi.create_departement_df(day_data=test_data) - true_res = pd.DataFrame( - { - "latitude": {0: 47.978, 1: 46.783, 2: 43.76}, - "longitude": {0: 5.132, 1: 4.71, 2: 1.335}, - "departement": { - 0: "Haute-Marne", - 1: "Saône-et-Loire", - 2: "Haute-Garonne", - }, - } - ) - assert_frame_equal(res, true_res) - - def test_include_departement(self): - test_row = pd.Series({"latitude": 51.072, "longitude": 2.531, "fwi": 0.0}) - with urllib.request.urlopen(cfg.FR_GEOJSON) as url: - dep_polygons = json.loads(url.read().decode()) - self.assertEqual(fwi.include_department(test_row, dep_polygons), "Nord") - - @patch("pyro_risks.datasets.utils.requests.get") - def test_url_retrieve(self, mock_get): - mock_get.return_value.status_code = 200 - mock_get.return_value.content = bytes("WEATHER OR WILDFIRE FILE", "utf-8") - content = utils.url_retrieve("url") - self.assertIsInstance(content, bytes) - - mock_get.return_value.status_code = 400 - mock_get.return_value.content = bytes("WEATHER OR WILDFIRE FILE", "utf-8") - self.assertRaises( - requests.exceptions.ConnectionError, utils.url_retrieve, "url" - ) - - def test_get_fname(self): - url_firms = "https://firms.modaps.eosdis.nasa.gov/data/active_fire/c6/csv/MODIS_C6_Europe_24h.csv" - url_ghcn = "https://www1.ncdc.noaa.gov/pub/data/ghcn/daily/by_year/2020.csv.gz" - url_isd = "https://www.ncei.noaa.gov/data/global-hourly/archive/csv/2020.tar.gz" - - self.assertEqual( - utils.get_fname(url_firms), ("MODIS_C6_Europe_24h", "csv", None) - ) - self.assertEqual(utils.get_fname(url_ghcn), ("2020", "csv", "gz")) - self.assertEqual(utils.get_fname(url_isd), ("2020", None, "tar.gz")) - - @staticmethod - def _mock_csv(destination, fname): - unzipped_content = [ - ["col1", "col2", "col3", "col4"], - ["test", "test", "test", "test"], - ["test", "test", "test", "test"], - ["test", "test", "test", "test"], - ] - - full_path = os.path.join(destination, "server/") - - os.makedirs(os.path.dirname(full_path), exist_ok=True) - - with open(os.path.join(full_path, fname), mode="w") as csvfile: - writer = csv.writer(csvfile) - writer.writerows(unzipped_content) - - def _make_tarfile(self, destination): - self._mock_csv(destination, "test_tar.csv") - - full_path = os.path.join(destination, "server/") - out = tarfile.open(os.path.join(full_path, "test.tar.gz"), "w:gz") - out.add(full_path, arcname=os.path.basename(full_path)) - out.close() - - with open(os.path.join(full_path, "test.tar.gz"), "rb") as tar_file: - memory_file = BytesIO(tar_file.read()) - - return memory_file - - def _make_gzipfile(self, destination): - self._mock_csv(destination, "test_gz.csv") - - full_path = os.path.join(destination, "server/") - with gzip.GzipFile(os.path.join(full_path, "test.gz"), mode="w") as gz, open( - os.path.join(full_path, "test_gz.csv"), mode="r" - ) as csvfile: - gz.write(csvfile.read().encode()) - gz.close() - - with open(os.path.join(full_path, "test.gz"), "rb") as gz_file: - memory_file = BytesIO(gz_file.read()) - - return memory_file - - def _make_zipfile(self, destination): - self._mock_csv(destination, "test_zip.csv") - - full_path = os.path.join(destination, "server/") - with ZipFile(os.path.join(full_path, "test.zip"), "w") as zip_file: - zip_file.write( - os.path.join(full_path, "test_zip.csv"), - os.path.basename(os.path.join(full_path, "test_zip.csv")), - ) - - with open(os.path.join(full_path, "test.zip"), "rb") as zip_file: - memory_file = BytesIO(zip_file.read()) - - return memory_file - - def _make_csv(self, destination): - self._mock_csv(destination, "test_csv.csv") - - full_path = os.path.join(destination, "server/") - with open(os.path.join(full_path, "test_csv.csv"), "rb") as csv_file: - memory_file = BytesIO(csv_file.read()) - - return memory_file - - @staticmethod - def _mock_fname(compression): - if compression == "tar.gz": - return ("test_tar", "csv", "tar.gz") - - elif compression == "zip": - return ("test_zip", "csv", "zip") - - elif compression == "csv": - return ("test_csv", "csv", None) - - else: - return ("test_gz", "csv", "gz") - - @patch("pyro_risks.datasets.utils.get_fname") - @patch("pyro_risks.datasets.utils.url_retrieve") - def test_download(self, mock_url_retrieve, mock_fname): - with tempfile.TemporaryDirectory() as destination: - full_path = os.path.join(destination, "client/") - - mock_fname.return_value = self._mock_fname("tar.gz") - mock_url_retrieve.return_value = self._make_tarfile(destination).read() - utils.download(url="url", default_extension="csv", destination=full_path) - self.assertTrue(Path(full_path, "test_tar.csv").is_file()) - - mock_fname.return_value = self._mock_fname("zip") - mock_url_retrieve.return_value = self._make_zipfile(destination).read() - utils.download(url="url", default_extension="csv", destination=full_path) - self.assertTrue(Path(full_path, "test_zip.csv").is_file()) - - mock_fname.return_value = self._mock_fname("gz") - mock_url_retrieve.return_value = self._make_gzipfile(destination).read() - utils.download(url="url", default_extension="csv", destination=full_path) - self.assertTrue(Path(full_path, "test_gz.csv").is_file()) - - mock_fname.return_value = self._mock_fname("csv") - mock_url_retrieve.return_value = self._make_csv(destination).read() - utils.download( - url="url", default_extension="csv", unzip=False, destination=full_path - ) - self.assertTrue(Path(full_path, "test_csv.csv").is_file()) - - mock_fname.return_value = self._mock_fname("gz") - mock_url_retrieve.return_value = self._make_gzipfile(destination).read() - utils.download( - url="url", default_extension="csv", unzip=False, destination=full_path - ) - self.assertTrue(Path(full_path, "test_gz.gz").is_file()) - - mock_fname.return_value = self._mock_fname("csv") - self.assertRaises(ValueError, utils.download, "url", "csv", True, full_path) - # utils.download(url='url', default_extension="csv", unzip=False, destination=full_path) - - def test_get_modis(self): - with tempfile.TemporaryDirectory() as destination: - utils.get_modis( - start_year=2000, end_year=2001, yearly=True, destination=destination - ) - utils.get_modis(destination=destination) - self.assertTrue(Path(destination, "modis_2000_France.csv").is_file()) - self.assertTrue(Path(destination, "MODIS_C6_Europe_24h.csv").is_file()) - - def test_get_ghcn(self): - with tempfile.TemporaryDirectory() as destination: - utils.get_ghcn(start_year=2000, end_year=2001, destination=destination) - self.assertTrue(Path(destination, "2000.csv").is_file()) - - def test_find_closest_weather_station(self): - # Dataframe without STATION column - df = pd.DataFrame( - np.array([[5.876, 23.875], [8.986, 12.978]]), - columns=["LATITUDE", "LONGITUDE"], - ) - self.assertRaises( - ValueError, utils.find_closest_weather_station, df, 3.871, 11.234 - ) - - # Dataframe with STATION column - df = pd.DataFrame( - np.array( - [ - [5676499, 5.876, 23.875], - [4597821, 3.286, 12.978], - [8767822, 8.564, 10.764], - ] - ), - columns=["STATION", "LATITUDE", "LONGITUDE"], - ) - ref_station = utils.find_closest_weather_station(df, 3.871, 11.234) - self.assertIsInstance(ref_station, int) - - def test_merge_datasets_by_departements(self): - df_weather = weather.NOAAWeather() - df_fires = wildfires.BDIFFHistory() - df = merge_datasets_by_departements( - df_weather, "DATE", "code", df_fires, "date", "Département", "left" - ) - self.assertIsInstance(df, pd.DataFrame) - - def test_merge_datasets_by_closest_weather_station(self): - df_weather = weather.NOAAWeather() - nasa_firms = nasa_wildfires.NASAFIRMS() - df = merge_datasets_by_closest_weather_station( - df_weather, "DATE", nasa_firms, "acq_date" - ) - self.assertIsInstance(df, pd.DataFrame) - - def test_merge_datasets_by_closest_weather_point(self): - df_weather = pd.DataFrame( - np.array( - [ - [5.876, 23.875, "2019-06-24"], - [3.286, 12.978, "2019-10-02"], - [8.564, 10.764, "2019-03-12"], - ] - ), - columns=["latitude", "longitude", "time"], - ) - df_weather["latitude"] = df_weather["latitude"].astype(float) - df_weather["longitude"] = df_weather["longitude"].astype(float) - df_weather["time"] = pd.to_datetime( - df_weather["time"], format="%Y-%m-%d", errors="coerce" - ) - nasa_firms = nasa_wildfires.NASAFIRMS() - df = merge_datasets_by_closest_weather_point( - df_weather, "time", nasa_firms, "acq_date" - ) - self.assertIsInstance(df, pd.DataFrame) - - def test_merge_datasets_by_proximity(self): - df_weather = pd.DataFrame( - np.array( - [ - [5.876, 23.875, "2019-06-24"], - [3.286, 12.978, "2019-10-02"], - [8.564, 10.764, "2019-03-12"], - ] - ), - columns=["latitude", "longitude", "time"], - ) - df_weather["latitude"] = df_weather["latitude"].astype(float) - df_weather["longitude"] = df_weather["longitude"].astype(float) - df_weather["time"] = pd.to_datetime( - df_weather["time"], format="%Y-%m-%d", errors="coerce" - ) - nasa_firms = nasa_wildfires.NASAFIRMS_VIIRS() - df = merge_by_proximity(nasa_firms, "acq_date", df_weather, "time", "right") - self.assertIsInstance(df, pd.DataFrame) - - -class DatasetsTester(unittest.TestCase): - def test_get_french_geom(self): - fr_geom = masks.get_french_geom() - self.assertIsInstance(fr_geom, GeoDataFrame) - self.assertTrue( - all( - v1 == v2 for v1, v2 in zip(fr_geom.columns, ["code", "nom", "geometry"]) - ) - ) - - def test_noaaweather(self): - ds = weather.NOAAWeather() - self.assertIsInstance(ds, pd.DataFrame) - - def test_bdiffhistory(self): - ds = wildfires.BDIFFHistory() - self.assertIsInstance(ds, pd.DataFrame) - - def test_nasafirms_json(self): - ds = nasa_wildfires.NASAFIRMS() - self.assertIsInstance(ds, pd.DataFrame) - - def test_nasafirms_csv(self): - ds = nasa_wildfires.NASAFIRMS( - source_path=cfg.TEST_FR_FIRMS_CSV_FALLBACK, fmt="csv" - ) - self.assertIsInstance(ds, pd.DataFrame) - - def test_nasafirms_xlsx(self): - ds = nasa_wildfires.NASAFIRMS( - source_path=cfg.TEST_FR_FIRMS_XLSX_FALLBACK, fmt="xlsx" - ) - self.assertIsInstance(ds, pd.DataFrame) - - def test_nasaviirs_csv(self): - ds = nasa_wildfires.NASAFIRMS_VIIRS() - self.assertIsInstance(ds, pd.DataFrame) - - def test_nasaviirs_xlsx(self): - ds = nasa_wildfires.NASAFIRMS_VIIRS( - source_path=cfg.TEST_FR_VIIRS_XLSX_FALLBACK, fmt="xlsx" - ) - self.assertIsInstance(ds, pd.DataFrame) - - def test_nasaviirs_json(self): - ds = nasa_wildfires.NASAFIRMS_VIIRS( - source_path=cfg.TEST_FR_VIIRS_JSON_FALLBACK, fmt="json" - ) - self.assertIsInstance(ds, pd.DataFrame) - - def test_gwisfwi(self): - ds = fwi.GwisFwi() - self.assertIsInstance(ds, pd.DataFrame) - - def test_era5land(self): - ds = ERA5.ERA5Land(source_path=cfg.TEST_FR_ERA5LAND_FALLBACK) - self.assertIsInstance(ds, pd.DataFrame) - - def test_era5t(self): - ds = ERA5.ERA5T(source_path=cfg.TEST_FR_ERA5LAND_FALLBACK) - self.assertIsInstance(ds, pd.DataFrame) - - def test_MergedEraFwiViirs(self): - ds = era_fwi_viirs.MergedEraFwiViirs( - era_source_path=cfg.TEST_FR_ERA5T_FALLBACK, - viirs_source_path=None, - fwi_source_path=cfg.TEST_FWI_FALLBACK, - ) - self.assertIsInstance(ds, pd.DataFrame) - self.assertTrue(len(ds) > 0) - - def test_call_era5land(self): - with tempfile.TemporaryDirectory() as tmp: - queries_api.call_era5land(tmp, "2020", "07", "15") - self.assertTrue(os.path.isfile(os.path.join(tmp, "era5land_2020_07_15.nc"))) - - def test_call_era5t(self): - with tempfile.TemporaryDirectory() as tmp: - queries_api.call_era5t(tmp, "2020", "07", "15") - self.assertTrue(os.path.isfile(os.path.join(tmp, "era5t_2020_07_15.nc"))) - - def test_call_fwi(self): - with tempfile.TemporaryDirectory() as tmp: - queries_api.call_fwi(tmp, "2020", "07", "15") - self.assertTrue(os.path.isfile(os.path.join(tmp, "fwi_2020_07_15.zip"))) - - def test_get_fwi_from_api(self): - res = fwi.get_fwi_from_api("2020-07-15") - self.assertIsInstance(res, pd.DataFrame) - self.assertEqual(len(res), 1039) - self.assertEqual(res.iloc[0]["nom"], "Aisne") - self.assertEqual(res.iloc[78]["isi"], np.float32(5.120605)) - - def test_get_fwi_data_for_predict(self): - res = fwi.get_fwi_data_for_predict("2020-05-05") - self.assertTrue( - np.array_equal( - res.day.unique(), - np.array(["2020-05-05", "2020-05-04", "2020-05-02", "2020-04-28"]), - ) - ) - - def test_get_data_era5land_for_predict(self): - res = ERA5.get_data_era5land_for_predict("2020-05-05") - self.assertTrue( - np.array_equal( - res.time.unique(), - np.array( - ["2020-05-05", "2020-05-04", "2020-05-02", "2020-04-28"], - dtype="datetime64[ns]", - ), - ) - ) - self.assertTrue("evaow" in res.columns) - - def test_get_data_era5t_for_predict(self): - res = ERA5.get_data_era5t_for_predict("2020-07-15") - self.assertTrue("u10" in res.columns) - self.assertEqual(len(res), 4156) - - def test_process_dataset_to_predict(self): - fwi = pd.read_csv(cfg.TEST_FWI_TO_PREDICT) - era = pd.read_csv(cfg.TEST_ERA_TO_PREDICT) - res = era_fwi_viirs.process_dataset_to_predict(fwi, era) - self.assertTrue( - np.array_equal( - res.loc[res["nom"] == "Vienne", "fwi_max"].values, - np.array( - [1.2649848, 0.06888488, 0.74846804, 1.6156918], dtype=np.float64 - ), - ) - ) - - -if __name__ == "__main__": - unittest.main() diff --git a/test/test_evaluate.py b/test/test_evaluate.py deleted file mode 100644 index 1c6c93d..0000000 --- a/test/test_evaluate.py +++ /dev/null @@ -1,90 +0,0 @@ -# Copyright (C) 2021-2022, Pyronear. - -# This program is licensed under the Apache License version 2. -# See LICENSE or go to for full license details. - -from collections import namedtuple -from datetime import datetime -from imblearn.pipeline import Pipeline -from sklearn.dummy import DummyClassifier -from sklearn.model_selection import train_test_split -from sklearn.datasets import make_classification -from pyro_risks.pipeline import train_pipeline, save_pipeline -from pyro_risks.pipeline import ( - save_classification_reports, - save_classification_plots, - evaluate_pipeline, -) - - -import numpy as np -import pandas as pd -import pyro_risks.config as cfg - -import unittest -import tempfile -import glob - - -class EvaluateTester(unittest.TestCase): - def test_save_classification_reports(self): - y_true = np.array([0, 0, 1, 1]) - y_pred = np.array([0, 1, 1, 1]) - with tempfile.TemporaryDirectory() as destination: - save_classification_reports( - y_true=y_true, y_pred=y_pred, prefix="TEST", destination=destination - ) - files = glob.glob(destination + "/*") - self.assertTrue(any([".json" in file for file in files])) - self.assertTrue(any([".csv" in file for file in files])) - - def test_save_classification_plots(self): - y_true = np.array([0, 0, 1, 1]) - y_proba = np.array([[0.9, 0.1], [0.6, 0.4], [0.65, 0.35], [0.2, 0.8]]) - with tempfile.TemporaryDirectory() as destination: - save_classification_plots( - y_true=y_true, - y_proba=y_proba[:, 1], - threshold=0.35, - prefix="TEST", - destination=destination, - ) - files = glob.glob(destination + "/*") - self.assertTrue(any([".png" in file for file in files])) - - def test_evaluate_pipeline(self): - X, y = make_classification( - n_samples=100, n_features=5, n_informative=2, n_redundant=2 - ) - X_train, _, y_train, _ = train_test_split( - X, y, test_size=cfg.TEST_SIZE, random_state=cfg.RANDOM_STATE - ) - dummy_pipeline = Pipeline( - [("dummy_classifier", DummyClassifier(strategy="constant", constant=0))] - ) - dummy_pipeline.fit(X_train, y_train) - - with tempfile.TemporaryDirectory() as destination: - threshold = destination + "/DUMMY_threshold.json" - save_pipeline( - pipeline=dummy_pipeline, - model="DUMMY", - optimal_threshold=0, - destination=destination, - ) - evaluate_pipeline( - X=X, - y=y, - pipeline=dummy_pipeline, - threshold=threshold, - prefix="DUMMY", - destination=destination, - ) - files = glob.glob(destination + "/*") - self.assertTrue(any([".png" in file for file in files])) - self.assertTrue(any([".json" in file for file in files])) - self.assertTrue(any([".csv" in file for file in files])) - - -if __name__ == "__main__": - unittest.main() diff --git a/test/test_load.py b/test/test_load.py deleted file mode 100644 index 2e2ce2f..0000000 --- a/test/test_load.py +++ /dev/null @@ -1,25 +0,0 @@ -# Copyright (C) 2021-2022, Pyronear. - -# This program is licensed under the Apache License version 2. -# See LICENSE or go to for full license details. - -from pyro_risks.pipeline import load_dataset -from unittest import mock - -import pyro_risks.config as cfg -import unittest -import tempfile -import os - - -class LoadTester(unittest.TestCase): - def test_load(self): - with tempfile.TemporaryDirectory() as destination: - with mock.patch("pyro_risks.config.DATA_REGISTRY", destination): - dataset_path = os.path.join(destination, cfg.DATASET) - load_dataset() - self.assertTrue(os.path.isfile(dataset_path)) - - -if __name__ == "__main__": - unittest.main() diff --git a/test/test_main.py b/test/test_main.py deleted file mode 100644 index 1e8a38a..0000000 --- a/test/test_main.py +++ /dev/null @@ -1,133 +0,0 @@ -# Copyright (C) 2021-2022, Pyronear. - -# This program is licensed under the Apache License version 2. -# See LICENSE or go to for full license details. - -from pyro_risks.pipeline import load_dataset -from pyro_risks.main import main -from pyro_risks.pipeline import train_pipeline -from imblearn.pipeline import Pipeline -from sklearn.dummy import DummyClassifier -from click.testing import CliRunner -import pyro_risks.config as cfg -import requests - -import unittest -import tempfile -import glob -import os - - -class MainTester(unittest.TestCase): - def test_download_dataset(self): - runner = CliRunner() - pattern = "/*.csv" - with tempfile.TemporaryDirectory() as destination: - runner.invoke(main, ["download", "dataset", "--destination", destination]) - files = glob.glob(destination + pattern) - self.assertTrue(any([cfg.DATASET in file for file in files])) - - def test_download_inputs(self): - runner = CliRunner() - pattern = "/*.csv" - with tempfile.TemporaryDirectory() as directory: - runner.invoke( - main, - ["download", "inputs", "--day", "2020-05-05", "--directory", directory], - ) - files = glob.glob(directory + pattern) - self.assertTrue( - any(["inputs_France_2020-05-05.csv" in file for file in files]) - ) - - def test_train_pipeline(self): - runner = CliRunner() - pattern = "/*.joblib" - with tempfile.TemporaryDirectory() as destination: - runner.invoke( - main, ["train", "--model", "RF", "--destination", destination] - ) - files = glob.glob(destination + pattern) - self.assertTrue(any(["RF" in file for file in files])) - - def test_evaluate_pipeline(self): - runner = CliRunner() - pattern = "/*.joblib" - X, y = load_dataset() - - dummy_pipeline = Pipeline( - [("dummy_classifier", DummyClassifier(strategy="constant", constant=0))] - ) - - with tempfile.TemporaryDirectory() as destination: - threshold = destination + "/DUMMY_threshold.json" - train_pipeline( - X=X, - y=y, - model="DUMMY", - pipeline=dummy_pipeline, - destination=destination, - ignore_prints=True, - ignore_html=True, - ) - pipeline_path = glob.glob(destination + pattern) - runner.invoke( - main, - [ - "evaluate", - "--pipeline", - pipeline_path[0], - "--threshold", - threshold, - "--prefix", - "DUMMY", - "--destination", - destination, - ], - ) - files = glob.glob(destination + "/*") - self.assertTrue(any([".png" in file for file in files])) - self.assertTrue(any([".json" in file for file in files])) - self.assertTrue(any([".csv" in file for file in files])) - - def test_predict(self): - # TODO - # Test with today date after bugfix - inputs_fname = "inputs_France_2020-05-05.csv" - pipeline_fname = "RF.joblib" - mock_inputs = requests.get( - url="https://github.com/pyronear/pyro-risks/releases/download/v0.1.0-data/inputs_France_2020-05-05.csv" - ) - mock_pipeline = requests.get( - url="https://github.com/pyronear/pyro-risks/releases/download/v0.1.0-data/RF.joblib" - ) - - runner = CliRunner() - with tempfile.TemporaryDirectory() as directory: - with open(os.path.join(directory, inputs_fname), "wb") as inputs: - inputs.write(mock_inputs.content) - - with open(os.path.join(directory, pipeline_fname), "wb") as pipeline: - pipeline.write(mock_pipeline.content) - runner.invoke( - main, ["predict", "--day", "2020-05-05", "--directory", directory] - ) - - files = glob.glob(directory + "/*") - print(files) - self.assertTrue( - any(["inputs_France_2020-05-05.csv" in file for file in files]) - ) - self.assertTrue( - any( - [ - "RF_predictions_France_2020-05-05.joblib" in file - for file in files - ] - ) - ) - self.assertTrue(any(["RF.joblib" in file for file in files])) - - -if __name__ == "__main__": - unittest.main() diff --git a/test/test_models_transformers.py b/test/test_models_transformers.py deleted file mode 100644 index fb345d7..0000000 --- a/test/test_models_transformers.py +++ /dev/null @@ -1,234 +0,0 @@ -# Copyright (C) 2021-2022, Pyronear. - -# This program is licensed under the Apache License version 2. -# See LICENSE or go to for full license details. - -import unittest -import numpy as np -import pandas as pd - -from pandas.testing import assert_frame_equal, assert_series_equal - -from pyro_risks.models import ( - TargetDiscretizer, - CategorySelector, - Imputer, - LagTransformer, - FeatureSelector, - FeatureSubsetter, -) - - -class TransformersTester(unittest.TestCase): - def test_target_discretizer(self): - td = TargetDiscretizer(discretizer=lambda x: 1 if x > 0 else 0) - df = pd.DataFrame( - { - "day": ["2019-07-01", "2019-08-02", "2019-06-12"], - "departement": ["Aisne", "Cantal", "Savoie"], - "fires": [0, 5, 10], - "fwi_mean": [13.3, 0.9, 2.5], - "ffmc_max": [23, 45.3, 109.0], - } - ) - X = df.drop(columns=["fires"]) - y = df["fires"] - - Xr, yr = td.fit_resample(X, y) - assert_series_equal(yr, pd.Series([0, 1, 1], name="fires")) - assert_frame_equal(Xr, X) - self.assertRaises(TypeError, TargetDiscretizer, [0, 1]) - - def test_category_selector(self): - cs = CategorySelector(variable="departement", category=["Aisne", "Cantal"]) - df = pd.DataFrame( - { - "day": ["2019-07-01", "2019-08-02", "2019-06-12"], - "departement": ["Aisne", "Cantal", "Savoie"], - "fires": [0, 5, 10], - "fwi_mean": [13.3, 0.9, 2.5], - "ffmc_max": [23, 45.3, 109.0], - } - ) - X = df.drop(columns=["fires"]) - y = df["fires"] - - Xr, yr = cs.fit_resample(X, y) - - self.assertRaises(TypeError, CategorySelector, "departement", 0) - assert_frame_equal(Xr, X[X["departement"].isin(["Aisne", "Cantal"])]) - assert_series_equal(yr, y[X["departement"].isin(["Aisne", "Cantal"])]) - - # pylint: disable=R0201 - def test_imputer(self): - imp = Imputer(strategy="median", columns=["fwi_mean"]) - df = pd.DataFrame( - { - "fires": [0, 5, 10], - "fwi_mean": [13.3, np.nan, 2.5], - "ffmc_max": [23, np.nan, 109.0], - } - ) - - X = df.drop(columns=["fires"]) - y = df["fires"] - - imp.fit(X, y) - - XT = imp.transform(X) - - assert_frame_equal( - XT, - pd.DataFrame( - { - "fwi_mean": [13.3, 7.9, 2.5], - "ffmc_max": [23, np.nan, 109.0], - } - ), - ) - - def test_lag_transformer(self): - lt = LagTransformer( - date_column="date", zone_column="departement", columns=["fwi_mean"] - ) - df = pd.DataFrame( - { - "date": [ - np.datetime64("2019-07-01"), - np.datetime64("2019-07-04"), - np.datetime64("2019-07-07"), - np.datetime64("2019-07-08"), - ], - "departement": ["Cantal", "Cantal", "Cantal", "Cantal"], - "fwi_mean": [1.1, 13.3, 0.9, 2.5], - "fires": [0, 5, 10, 10], - } - ) - res = pd.DataFrame( - { - "date": [ - np.datetime64("2019-07-01"), - np.datetime64("2019-07-04"), - np.datetime64("2019-07-07"), - np.datetime64("2019-07-08"), - ], - "departement": ["Cantal", "Cantal", "Cantal", "Cantal"], - "fwi_mean": [1.1, 13.3, 0.9, 2.5], - "fwi_mean_lag1": [np.nan, np.nan, np.nan, 0.9], - "fwi_mean_lag3": [np.nan, 1.1, 13.3, np.nan], - "fwi_mean_lag7": [np.nan, np.nan, np.nan, 1.1], - } - ) - - X = df.drop(columns=["fires"]) - y = df["fires"] - - lt.fit(X, y) - - X = lt.transform(X) - - pd.DataFrame( - { - "day": ["2019-07-01", "2019-08-02", "2019-06-12"], - "departement": ["Aisne", "Cantal", "Savoie"], - "fwi_mean": [13.3, 0.9, 2.5], - "ffmc_max": [23, 45.3, 109.0], - } - ) - - assert_frame_equal(res, X) - self.assertRaises( - TypeError, - LagTransformer.transform, - pd.DataFrame( - { - "day": ["2019-07-01", "2019-08-02", "2019-06-12"], - "departement": ["Aisne", "Cantal", "Savoie"], - "fwi_mean": [13.3, 0.9, 2.5], - "ffmc_max": [23, 45.3, 109.0], - } - ), - ) - - # pylint: disable=R0201 - def test_feature_selector(self): - fs = FeatureSelector( - exclude=["date", "department"], method="pearson", threshold=0.15 - ) - df = pd.DataFrame( - { - "date": [ - np.datetime64("2019-07-01"), - np.datetime64("2019-07-04"), - np.datetime64("2019-07-06"), - np.datetime64("2019-07-07"), - np.datetime64("2019-07-08"), - ], - "departement": ["Cantal", "Cantal", "Cantal", "Cantal", "Cantal"], - "str_mean": [2, 3, 4, 0, 0], - "ffmc_min": [0, 0, 0, 0, 0], - "isi_mean": [3, 0, 1, 4, 5], - "fires": [1, 1, 1, 0, 0], - } - ) - - X = df.drop(columns=["fires"]) - y = df["fires"] - - fs.fit(X, y) - X = fs.transform(X) - - res = pd.DataFrame( - { - "str_mean": [2, 3, 4, 0, 0], - "isi_mean": [3, 0, 1, 4, 5], - } - ) - - assert_frame_equal(res, X) - - # pylint: disable=R0201 - def test_feature_subsetter(self): - fs = FeatureSubsetter(columns=["date", "departement", "str_mean"]) - df = pd.DataFrame( - { - "date": [ - np.datetime64("2019-07-01"), - np.datetime64("2019-07-04"), - np.datetime64("2019-07-06"), - np.datetime64("2019-07-07"), - np.datetime64("2019-07-08"), - ], - "departement": ["Cantal", "Cantal", "Cantal", "Cantal", "Cantal"], - "str_mean": [2, 3, 4, 0, 0], - "ffmc_min": [0, 0, 0, 0, 0], - "isi_mean": [3, 0, 1, 4, 5], - "fires": [1, 1, 1, 0, 0], - } - ) - - X = df.drop(columns=["fires"]) - y = df["fires"] - - fs.fit(X, y) - X = fs.transform(X) - - res = pd.DataFrame( - { - "date": [ - np.datetime64("2019-07-01"), - np.datetime64("2019-07-04"), - np.datetime64("2019-07-06"), - np.datetime64("2019-07-07"), - np.datetime64("2019-07-08"), - ], - "departement": ["Cantal", "Cantal", "Cantal", "Cantal", "Cantal"], - "str_mean": [2, 3, 4, 0, 0], - } - ) - - assert_frame_equal(res, X) - - -if __name__ == "__main__": - unittest.main() diff --git a/test/test_models_utils.py b/test/test_models_utils.py deleted file mode 100644 index a524e99..0000000 --- a/test/test_models_utils.py +++ /dev/null @@ -1,29 +0,0 @@ -# Copyright (C) 2021-2022, Pyronear. - -# This program is licensed under the Apache License version 2. -# See LICENSE or go to for full license details. - -import unittest - -import numpy as np -from pyro_risks.models import check_xy, check_x, discretizer - - -class UtilsTester(unittest.TestCase): - def test_check_xy(self): - self.assertRaises( - TypeError, check_xy, np.array([[0, 0, 0], [0, 0, 0]]), np.array([0, 1]) - ) - - def test_check_x(self): - self.assertRaises( - TypeError, check_x, np.array([[0, 0, 0], [0, 0, 0]]), np.array([0, 1]) - ) - - def test_discretizer(self): - self.assertEqual(discretizer(5), 1) - self.assertEqual(discretizer(0), 0) - - -if __name__ == "__main__": - unittest.main() diff --git a/test/test_predict.py b/test/test_predict.py deleted file mode 100644 index 8d342da..0000000 --- a/test/test_predict.py +++ /dev/null @@ -1,168 +0,0 @@ -# Copyright (C) 2021-2022, Pyronear. - -# This program is licensed under the Apache License version 2. -# See LICENSE or go to for full license details. - -from pyro_risks.pipeline import PyroRisk -from pyro_risks import config as cfg - -import pandas as pd - -import requests -import imblearn -import unittest -import tempfile -import glob -import os - - -class PredictTester(unittest.TestCase): - def test_pyrorisk(self): - pyrorisk_rf = PyroRisk() - pyrorisk_xgb = PyroRisk(model="XGBOOST") - self.assertEqual(pyrorisk_rf.model, "RF") - self.assertEqual(pyrorisk_xgb.model, "XGBOOST") - self.assertEqual(pyrorisk_rf.model_path, cfg.RFMODEL_ERA5T_PATH) - self.assertEqual(pyrorisk_xgb.model_path, cfg.XGBMODEL_ERA5T_PATH) - self.assertEqual(pyrorisk_rf.predictions_registry, cfg.PREDICTIONS_REGISTRY) - self.assertEqual(pyrorisk_xgb.predictions_registry, cfg.PREDICTIONS_REGISTRY) - with self.assertRaises(ValueError): - PyroRisk(model="`Mock`") - - def test_get_pipeline(self): - pyrorisk = PyroRisk() - with tempfile.TemporaryDirectory() as dir_destination: - destination = f"{dir_destination}/RF.joblib" - pyrorisk.get_pipeline(destination=destination) - files = glob.glob(dir_destination + "/*") - self.assertTrue(any(["RF.joblib" in file for file in files])) - - def test_get_inputs(self): - pyrorisk = PyroRisk() - country = "France" - day = "2020-05-05" - with tempfile.TemporaryDirectory() as dir_destination: - pyrorisk.get_inputs( - day=day, country=country, dir_destination=dir_destination - ) - files = glob.glob(dir_destination + "/*") - self.assertTrue( - any([f"inputs_{country}_{day}.csv" in file for file in files]) - ) - - def test_load_pipeline(self): - pyrorisk = PyroRisk() - with tempfile.TemporaryDirectory() as dir_path: - path = dir_path + "/RF.joblib" - pyrorisk.load_pipeline(path=path) - files = glob.glob(dir_path + "/*") - self.assertTrue(isinstance(pyrorisk.pipeline, imblearn.pipeline.Pipeline)) - self.assertTrue(any(["RF.joblib" in file for file in files])) - pyrorisk.pipeline = None - pyrorisk.load_pipeline(path=path) - self.assertTrue(isinstance(pyrorisk.pipeline, imblearn.pipeline.Pipeline)) - - def test_load_inputs(self): - pyrorisk = PyroRisk() - country = "France" - day = "2020-05-05" - with tempfile.TemporaryDirectory() as dir_path: - pyrorisk.load_inputs(day=day, country=country, dir_path=dir_path) - files = glob.glob(dir_path + "/*") - self.assertTrue(isinstance(pyrorisk.inputs, pd.DataFrame)) - self.assertTrue( - any([f"inputs_{country}_{day}.csv" in file for file in files]) - ) - pyrorisk.inputs = None - pyrorisk.load_inputs(day=day, country=country, dir_path=dir_path) - self.assertTrue(isinstance(pyrorisk.inputs, pd.DataFrame)) - - def test_predict(self): - pyrorisk_rf = PyroRisk() - pyrorisk_xgb = PyroRisk(model="XGBOOST") - country = "France" - day = "2020-05-05" - inputs_fname = "inputs_France_2020-05-05.csv" - rf_pipeline_fname = "RF.joblib" - xgb_pipeline_fname = "XGBOOST.joblib" - mock_inputs = requests.get( - url="https://github.com/pyronear/pyro-risks/releases/download/v0.1.0-data/inputs_France_2020-05-05.csv" - ) - mock_rf_pipeline = requests.get( - url="https://github.com/pyronear/pyro-risks/releases/download/v0.1.0-data/RF.joblib" - ) - mock_xgb_pipeline = requests.get( - url="https://github.com/pyronear/pyro-risks/releases/download/v0.1.0-data/RF.joblib" - ) - - with tempfile.TemporaryDirectory() as dir_destination: - with open(os.path.join(dir_destination, inputs_fname), "wb") as inputs: - inputs.write(mock_inputs.content) - - with open( - os.path.join(dir_destination, rf_pipeline_fname), "wb" - ) as pipeline: - pipeline.write(mock_rf_pipeline.content) - with open( - os.path.join(dir_destination, xgb_pipeline_fname), "wb" - ) as pipeline: - pipeline.write(mock_xgb_pipeline.content) - pyrorisk_rf.predict( - day=day, country=country, dir_destination=dir_destination - ) - pyrorisk_xgb.predict( - day=day, country=country, dir_destination=dir_destination - ) - files = glob.glob(dir_destination + "/*") - self.assertTrue( - any( - [ - f"{pyrorisk_rf.model}_predictions_{country}_{day}.joblib" - in file - for file in files - ] - ) - ) - self.assertTrue( - any( - [ - f"{pyrorisk_xgb.model}_predictions_{country}_{day}.joblib" - in file - for file in files - ] - ) - ) - - def test_get_predictions(self): - pyrorisk = PyroRisk() - country = "France" - day = "2020-05-05" - with tempfile.TemporaryDirectory() as destination: - pyrorisk.get_predictions(day=day, dir_destination=destination) - files = glob.glob(destination + "/*") - self.assertTrue( - any( - [ - f"{pyrorisk.model}_predictions_{country}_{day}.joblib" in file - for file in files - ] - ) - ) - - def test_expose_predictions(self): - pyrorisk = PyroRisk() - day = "2020-05-05" - with tempfile.TemporaryDirectory() as destination: - predictions_dict = pyrorisk.expose_predictions( - day=day, dir_destination=destination - ) - predictions_load_dict = pyrorisk.expose_predictions( - day=day, dir_destination=destination - ) - - self.assertTrue(isinstance(predictions_dict, dict)) - self.assertTrue(isinstance(predictions_load_dict, dict)) - - -if __name__ == "__main__": - unittest.main() diff --git a/test/test_train.py b/test/test_train.py deleted file mode 100644 index 239930e..0000000 --- a/test/test_train.py +++ /dev/null @@ -1,123 +0,0 @@ -# Copyright (C) 2021-2022, Pyronear. - -# This program is licensed under the Apache License version 2. -# See LICENSE or go to for full license details. - -import unittest -from collections import namedtuple -import tempfile -import glob - - -import numpy as np -import pandas as pd -import pyro_risks.config as cfg - -from datetime import datetime -from imblearn.pipeline import Pipeline -from sklearn.dummy import DummyClassifier -from pyro_risks.models import xgb_pipeline, rf_pipeline -from pyro_risks.pipeline import ( - calibrate_pipeline, - save_pipeline, - train_pipeline, - load_dataset, -) - - -class TrainTester(unittest.TestCase): - def test_calibrate_pipeline(self): - y_true = np.array([0, 0, 1, 1]) - y_scores = np.array([[0.9, 0.1], [0.6, 0.4], [0.65, 0.35], [0.2, 0.8]]) - optimal_threshold = calibrate_pipeline(y_true, y_scores) - self.assertEqual(optimal_threshold, 0.35) - - def test_save_pipeline(self): - y_true = np.array([0, 0, 1, 1]) - y_scores = np.array([[0.9, 0.1], [0.6, 0.4], [0.65, 0.35], [0.2, 0.8]]) - optimal_threshold = calibrate_pipeline(y_true, y_scores) - model_pattern = "/*.joblib" - html_pattern = "/*.html" - registry = "/.model_registry" - - with tempfile.TemporaryDirectory() as destination: - save_pipeline( - pipeline=xgb_pipeline, - model="RF", - optimal_threshold=optimal_threshold, - destination=destination, - ignore_html=True, - ) - save_pipeline( - pipeline=rf_pipeline, - model="RF", - optimal_threshold=optimal_threshold, - destination=destination, - ignore_html=False, - ) - model_files = glob.glob(destination + model_pattern) - html_files = glob.glob(destination + html_pattern) - self.assertTrue(any(["RF" in file for file in model_files])) - self.assertTrue(any(["RF" in file for file in html_files])) - - with tempfile.TemporaryDirectory() as destination: - save_pipeline( - pipeline=xgb_pipeline, - model="XGBOOST", - optimal_threshold=optimal_threshold, - destination=destination + registry, - ignore_html=True, - ) - save_pipeline( - pipeline=rf_pipeline, - model="XGBOOST", - optimal_threshold=optimal_threshold, - destination=destination + registry, - ignore_html=False, - ) - model_files = glob.glob(destination + registry + model_pattern) - html_files = glob.glob(destination + registry + html_pattern) - self.assertTrue(any(["XGBOOST" in file for file in model_files])) - self.assertTrue(any(["XGBOOST" in file for file in html_files])) - - def test_train_pipeline(self): - X, y = load_dataset() - pattern = "/*.joblib" - - dummy_pipeline = Pipeline( - [("dummy_classifier", DummyClassifier(strategy="constant", constant=0))] - ) - with tempfile.TemporaryDirectory() as destination: - train_pipeline( - X=X, - y=y, - model="XGBOOST", - destination=destination, - ignore_prints=True, - ignore_html=True, - ) - train_pipeline( - X=X, - y=y, - model="RF", - destination=destination, - ignore_prints=True, - ignore_html=True, - ) - train_pipeline( - X=X, - y=y, - model="DUMMY", - pipeline=dummy_pipeline, - destination=destination, - ignore_prints=True, - ignore_html=True, - ) - files = glob.glob(destination + pattern) - self.assertTrue(any(["RF" in file for file in files])) - self.assertTrue(any(["XGBOOST" in file for file in files])) - self.assertTrue(any(["DUMMY" in file for file in files])) - - -if __name__ == "__main__": - unittest.main() From 82b70d2e732d1feec56abbdd7fa7150a6bb6d21e Mon Sep 17 00:00:00 2001 From: Joshua Sant'Anna <45068597+jsakv@users.noreply.github.com> Date: Tue, 2 Jul 2024 16:33:58 +0200 Subject: [PATCH 08/41] refactor: Rename package --- {pyro_risks => pyrorisks}/__init__.py | 0 {pyro_risks => pyrorisks}/platform_fwi/get_fwi_effis_score.py | 0 {pyro_risks => pyrorisks}/platform_fwi/main.py | 0 {pyro_risks => pyrorisks}/utils/__init__.py | 0 {pyro_risks => pyrorisks}/utils/fwi_helpers.py | 0 {pyro_risks => pyrorisks}/utils/s3.py | 0 {pyro_risks => pyrorisks}/version.py | 0 7 files changed, 0 insertions(+), 0 deletions(-) rename {pyro_risks => pyrorisks}/__init__.py (100%) rename {pyro_risks => pyrorisks}/platform_fwi/get_fwi_effis_score.py (100%) rename {pyro_risks => pyrorisks}/platform_fwi/main.py (100%) rename {pyro_risks => pyrorisks}/utils/__init__.py (100%) rename {pyro_risks => pyrorisks}/utils/fwi_helpers.py (100%) rename {pyro_risks => pyrorisks}/utils/s3.py (100%) rename {pyro_risks => pyrorisks}/version.py (100%) diff --git a/pyro_risks/__init__.py b/pyrorisks/__init__.py similarity index 100% rename from pyro_risks/__init__.py rename to pyrorisks/__init__.py diff --git a/pyro_risks/platform_fwi/get_fwi_effis_score.py b/pyrorisks/platform_fwi/get_fwi_effis_score.py similarity index 100% rename from pyro_risks/platform_fwi/get_fwi_effis_score.py rename to pyrorisks/platform_fwi/get_fwi_effis_score.py diff --git a/pyro_risks/platform_fwi/main.py b/pyrorisks/platform_fwi/main.py similarity index 100% rename from pyro_risks/platform_fwi/main.py rename to pyrorisks/platform_fwi/main.py diff --git a/pyro_risks/utils/__init__.py b/pyrorisks/utils/__init__.py similarity index 100% rename from pyro_risks/utils/__init__.py rename to pyrorisks/utils/__init__.py diff --git a/pyro_risks/utils/fwi_helpers.py b/pyrorisks/utils/fwi_helpers.py similarity index 100% rename from pyro_risks/utils/fwi_helpers.py rename to pyrorisks/utils/fwi_helpers.py diff --git a/pyro_risks/utils/s3.py b/pyrorisks/utils/s3.py similarity index 100% rename from pyro_risks/utils/s3.py rename to pyrorisks/utils/s3.py diff --git a/pyro_risks/version.py b/pyrorisks/version.py similarity index 100% rename from pyro_risks/version.py rename to pyrorisks/version.py From 7591d5854be0850aa3fad9bc8bfea064efbcc4c5 Mon Sep 17 00:00:00 2001 From: Joshua Sant'Anna <45068597+jsakv@users.noreply.github.com> Date: Tue, 2 Jul 2024 17:21:08 +0200 Subject: [PATCH 09/41] refactor: Add setup.py --- setup.py | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 setup.py diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..3d61bc4 --- /dev/null +++ b/setup.py @@ -0,0 +1,70 @@ +# Copyright (C) 2021-2022, Pyronear. + +# This program is licensed under the Apache License version 2. +# See LICENSE or go to for full license details. + +#!usr/bin/python + +""" +Package installation setup +""" + +import os +import subprocess +from setuptools import setup, find_packages + +PACKAGE_NAME = "pyro_risks" +VERSION = "0.0.1" + + +with open("README.md") as f: + readme = f.read() + +requirements = [ + "boto3==1.28.45", + "botocore==1.31.45", + "click==8.1.7", + "geopandas==0.13.2", + "pandas==2.1.0", + "python-dotenv==1.0.0", + "rasterio==1.3.9", + "requests==2.31.0", + "numpy==1.26.4", +] + +setup( + name=PACKAGE_NAME, + version=VERSION, + author="Pyronear Contributors", + description="Pre-processing pipelines and models for wildfire forecasting and monitoring", + long_description=readme, + long_description_content_type="text/markdown", + url="https://github.com/pyronear/pyro-risks", + download_url="https://github.com/pyronear/pyro-risks/tags", + license="GPLv3", + entry_points={"console_scripts": ["pyrorisks = pyro_risks.main:main"]}, + classifiers=[ + "Development Status :: 2 - Pre-Alpha", + "Intended Audience :: Developers", + "Intended Audience :: Science/Research", + "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", + "Natural Language :: English", + "Operating System :: OS Independent", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Topic :: Scientific/Engineering", + "Topic :: Scientific/Engineering :: Mathematics", + "Topic :: Scientific/Engineering :: Artificial Intelligence", + "Topic :: Software Development", + "Topic :: Software Development :: Libraries", + "Topic :: Software Development :: Libraries :: Python Modules", + ], + keywords=["data science", "time series", "machine learning"], + packages=find_packages(exclude=("test",)), + zip_safe=True, + python_requires=">=3.6.0", + include_package_data=True, + install_requires=requirements, + package_data={"": ["LICENSE"]}, +) From 5cb83260941b49fe64317d05386f7c1516f78869 Mon Sep 17 00:00:00 2001 From: Joshua Sant'Anna <45068597+jsakv@users.noreply.github.com> Date: Tue, 2 Jul 2024 18:09:30 +0200 Subject: [PATCH 10/41] refactor: Patch package version --- docs/source/conf.py | 9 ++++----- setup.py | 4 ++-- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index 44e7639..7f2a3c1 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -20,7 +20,7 @@ # sys.path.insert(0, os.path.abspath('.')) import os import sys -import pyro_risks +import pyrorisks import sphinx_rtd_theme from datetime import datetime @@ -29,17 +29,16 @@ from sphinx import addnodes -sys.path.insert(0, os.path.abspath("../../pyro_risks")) # -- Project information ----------------------------------------------------- master_doc = "index" -project = "pyro_risks" +project = "pyrorisks" copyright = f"{datetime.now().year}, Pyronear Contributors" author = "Pyronear Contributors" # The full version, including alpha/beta/rc tags -version = pyro_risks.__version__ -release = pyro_risks.__version__ + "-git" +version = "0.1.0" +release = "0.1.0" + "-git" # -- General configuration --------------------------------------------------- diff --git a/setup.py b/setup.py index 3d61bc4..e13f1d7 100644 --- a/setup.py +++ b/setup.py @@ -13,7 +13,7 @@ import subprocess from setuptools import setup, find_packages -PACKAGE_NAME = "pyro_risks" +PACKAGE_NAME = "pyrorisks" VERSION = "0.0.1" @@ -30,6 +30,7 @@ "rasterio==1.3.9", "requests==2.31.0", "numpy==1.26.4", + "sphinx_rtd_theme", ] setup( @@ -42,7 +43,6 @@ url="https://github.com/pyronear/pyro-risks", download_url="https://github.com/pyronear/pyro-risks/tags", license="GPLv3", - entry_points={"console_scripts": ["pyrorisks = pyro_risks.main:main"]}, classifiers=[ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", From 6fb76a7051dce1d46b33d1fa2b65d9038071d271 Mon Sep 17 00:00:00 2001 From: Joshua Sant'Anna <45068597+jsakv@users.noreply.github.com> Date: Tue, 2 Jul 2024 18:10:37 +0200 Subject: [PATCH 11/41] refactor: Patch package version --- docs/requirements.txt | 1 + pyrorisks/version.py | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 pyrorisks/version.py diff --git a/docs/requirements.txt b/docs/requirements.txt index 6459c56..0933295 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -2,3 +2,4 @@ sphinx sphinx-rtd-theme==0.4.3 myst-parser==0.12.10 sphinx-autobuild==2020.9.1 +Jinja2<3.1 diff --git a/pyrorisks/version.py b/pyrorisks/version.py deleted file mode 100644 index 8f02035..0000000 --- a/pyrorisks/version.py +++ /dev/null @@ -1 +0,0 @@ -__version__ = "0.1.0a0" From baeb1418e2b0a03677e3c0a409c20de72aae68db Mon Sep 17 00:00:00 2001 From: Joshua Sant'Anna <45068597+jsakv@users.noreply.github.com> Date: Tue, 2 Jul 2024 18:11:06 +0200 Subject: [PATCH 12/41] refactor: Deprecate module documentation --- docs/source/index.rst | 13 +------ docs/source/modules/datasets/bdiff.rst | 7 ---- .../modules/datasets/copernicus_era.rst | 7 ---- .../modules/datasets/copernicus_fwi.rst | 7 ---- docs/source/modules/datasets/datasets.rst | 34 ------------------- docs/source/modules/datasets/masks.rst | 7 ---- docs/source/modules/datasets/modules.rst | 18 ---------- docs/source/modules/datasets/nasa_firms.rst | 7 ---- docs/source/modules/datasets/noaa_ncei.rst | 7 ---- docs/source/modules/models/modules.rst | 12 ------- docs/source/modules/models/pipelines.rst | 10 ------ docs/source/modules/models/transformers.rst | 11 ------ docs/source/modules/models/utils.rst | 7 ---- docs/source/modules/pipeline/evaluate.rst | 7 ---- docs/source/modules/pipeline/load.rst | 7 ---- docs/source/modules/pipeline/modules.rst | 13 ------- docs/source/modules/pipeline/predict.rst | 7 ---- docs/source/modules/pipeline/train.rst | 7 ---- 18 files changed, 1 insertion(+), 187 deletions(-) delete mode 100644 docs/source/modules/datasets/bdiff.rst delete mode 100644 docs/source/modules/datasets/copernicus_era.rst delete mode 100644 docs/source/modules/datasets/copernicus_fwi.rst delete mode 100644 docs/source/modules/datasets/datasets.rst delete mode 100644 docs/source/modules/datasets/masks.rst delete mode 100644 docs/source/modules/datasets/modules.rst delete mode 100644 docs/source/modules/datasets/nasa_firms.rst delete mode 100644 docs/source/modules/datasets/noaa_ncei.rst delete mode 100644 docs/source/modules/models/modules.rst delete mode 100644 docs/source/modules/models/pipelines.rst delete mode 100644 docs/source/modules/models/transformers.rst delete mode 100644 docs/source/modules/models/utils.rst delete mode 100644 docs/source/modules/pipeline/evaluate.rst delete mode 100644 docs/source/modules/pipeline/load.rst delete mode 100644 docs/source/modules/pipeline/modules.rst delete mode 100644 docs/source/modules/pipeline/predict.rst delete mode 100644 docs/source/modules/pipeline/train.rst diff --git a/docs/source/index.rst b/docs/source/index.rst index dfff1bf..9efb834 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -17,7 +17,7 @@ Pyronear Wildfire Risk Forecasting Documentation

The pyro-risks project aims at providing the pyronear-platform with a machine learning based wildfire forecasting capability. -The :mod:`pyro_risks` package aggregates pre-processing pipelines and models for wildfire forecasting. +The :mod:`pyrorisks` package aggregates pre-processing pipelines and models for wildfire forecasting. .. toctree:: @@ -35,17 +35,6 @@ The :mod:`pyro_risks` package aggregates pre-processing pipelines and models for overview/datasets/C3S-ECMWF_ERA5T overview/datasets/C3S-ECMWF_ERA5LAND -.. toctree:: - :maxdepth: 1 - :caption: Pyro Risks Package References - - modules/datasets/modules - modules/models/modules - modules/pipeline/modules - -.. automodule:: pyro_risks - :members: - .. toctree:: :maxdepth: 1 diff --git a/docs/source/modules/datasets/bdiff.rst b/docs/source/modules/datasets/bdiff.rst deleted file mode 100644 index 79cdd2e..0000000 --- a/docs/source/modules/datasets/bdiff.rst +++ /dev/null @@ -1,7 +0,0 @@ -BDIFF module -============= - -.. automodule:: pyro_risks.datasets.wildfires - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/modules/datasets/copernicus_era.rst b/docs/source/modules/datasets/copernicus_era.rst deleted file mode 100644 index 5c4b16d..0000000 --- a/docs/source/modules/datasets/copernicus_era.rst +++ /dev/null @@ -1,7 +0,0 @@ -Copernicus - ERA5 module -========================= - -.. automodule:: pyro_risks.datasets.ERA5 - :members: - :undoc-members: - :show-inheritance: \ No newline at end of file diff --git a/docs/source/modules/datasets/copernicus_fwi.rst b/docs/source/modules/datasets/copernicus_fwi.rst deleted file mode 100644 index db02abe..0000000 --- a/docs/source/modules/datasets/copernicus_fwi.rst +++ /dev/null @@ -1,7 +0,0 @@ -Copernicus - FWI module -======================== - -.. automodule:: pyro_risks.datasets.fwi - :members: - :undoc-members: - :show-inheritance: \ No newline at end of file diff --git a/docs/source/modules/datasets/datasets.rst b/docs/source/modules/datasets/datasets.rst deleted file mode 100644 index 655d882..0000000 --- a/docs/source/modules/datasets/datasets.rst +++ /dev/null @@ -1,34 +0,0 @@ - -pyro\_risks.datasets.datasets\_mergers module ---------------------------------------------- - -.. automodule:: pyro_risks.datasets.datasets_mergers - :members: - :undoc-members: - :show-inheritance: - - -pyro\_risks.datasets.era\_fwi\_viirs module -------------------------------------------- - -.. automodule:: pyro_risks.datasets.era_fwi_viirs - :members: - :undoc-members: - :show-inheritance: - - -pyro\_risks.datasets.queries\_api module ----------------------------------------- - -.. automodule:: pyro_risks.datasets.queries_api - :members: - :undoc-members: - :show-inheritance: - -pyro\_risks.datasets.utils module ---------------------------------- - -.. automodule:: pyro_risks.datasets.utils - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/modules/datasets/masks.rst b/docs/source/modules/datasets/masks.rst deleted file mode 100644 index ace1bbf..0000000 --- a/docs/source/modules/datasets/masks.rst +++ /dev/null @@ -1,7 +0,0 @@ -Masks module -============ - -.. automodule:: pyro_risks.datasets.masks - :members: - :undoc-members: - :show-inheritance: \ No newline at end of file diff --git a/docs/source/modules/datasets/modules.rst b/docs/source/modules/datasets/modules.rst deleted file mode 100644 index 3273892..0000000 --- a/docs/source/modules/datasets/modules.rst +++ /dev/null @@ -1,18 +0,0 @@ -pyro\_risks.datasets -==================== - -The datasets subpackage contains modules defining functions for downloading and processing publicly available weather and fire datasets. - -The following modules are available: - - -.. toctree:: - :maxdepth: 4 - - masks - nasa_firms - copernicus_fwi - copernicus_era - noaa_ncei - bdiff - datasets diff --git a/docs/source/modules/datasets/nasa_firms.rst b/docs/source/modules/datasets/nasa_firms.rst deleted file mode 100644 index d669c95..0000000 --- a/docs/source/modules/datasets/nasa_firms.rst +++ /dev/null @@ -1,7 +0,0 @@ -NASA FIRMS - Active Fire module -=============================== - -.. automodule:: pyro_risks.datasets.nasa_wildfires - :members: - :undoc-members: - :show-inheritance: \ No newline at end of file diff --git a/docs/source/modules/datasets/noaa_ncei.rst b/docs/source/modules/datasets/noaa_ncei.rst deleted file mode 100644 index a633a52..0000000 --- a/docs/source/modules/datasets/noaa_ncei.rst +++ /dev/null @@ -1,7 +0,0 @@ -NOAA NCEI module -================= - -.. automodule:: pyro_risks.datasets.weather - :members: - :undoc-members: - :show-inheritance: \ No newline at end of file diff --git a/docs/source/modules/models/modules.rst b/docs/source/modules/models/modules.rst deleted file mode 100644 index 29d5929..0000000 --- a/docs/source/modules/models/modules.rst +++ /dev/null @@ -1,12 +0,0 @@ -pyro\_risks.models -================== - -The models subpackage contains modules defining steps of the traininig and scoring sklearn pipelines. -The following modules are available: - -.. toctree:: - :maxdepth: 4 - - pipelines - transformers - utils \ No newline at end of file diff --git a/docs/source/modules/models/pipelines.rst b/docs/source/modules/models/pipelines.rst deleted file mode 100644 index b66c7a5..0000000 --- a/docs/source/modules/models/pipelines.rst +++ /dev/null @@ -1,10 +0,0 @@ -Pipelines module -================ - -The pipelines module contains the definitions of our scoring pipelines. The risk scoring pipelines are implemented using the `imbalanced-learn `_ -Pipeline allowing for defining sequences of **resampling, preprocessing and modeling steps as one estimators**. See scikit-learn -`Pipelines and composite estimators `_ for more information. - - -.. literalinclude:: ../../../../pyro_risks/models/pipelines.py - :language: PYTHON \ No newline at end of file diff --git a/docs/source/modules/models/transformers.rst b/docs/source/modules/models/transformers.rst deleted file mode 100644 index acd461c..0000000 --- a/docs/source/modules/models/transformers.rst +++ /dev/null @@ -1,11 +0,0 @@ -Transformers module -=================== - -The pipelines module contains the definitions of our scikit-learn compliant preprocessing steps i.e. transformers. -Transformers are estimators supporting transform and/or fit_transform methods see `Dataset transformations `_ , -`scikit-lego `_ and `feature-engine `_ for collections of transformers. - -.. automodule:: pyro_risks.models.transformers - :members: - :undoc-members: - :show-inheritance: \ No newline at end of file diff --git a/docs/source/modules/models/utils.rst b/docs/source/modules/models/utils.rst deleted file mode 100644 index 31c9fb5..0000000 --- a/docs/source/modules/models/utils.rst +++ /dev/null @@ -1,7 +0,0 @@ -Utils module -============ - -.. automodule:: pyro_risks.models.utils - :members: - :undoc-members: - :show-inheritance: \ No newline at end of file diff --git a/docs/source/modules/pipeline/evaluate.rst b/docs/source/modules/pipeline/evaluate.rst deleted file mode 100644 index b03a7ab..0000000 --- a/docs/source/modules/pipeline/evaluate.rst +++ /dev/null @@ -1,7 +0,0 @@ -Evaluate module -=============== - -.. automodule:: pyro_risks.pipeline.evaluate - :members: - :undoc-members: - :show-inheritance: \ No newline at end of file diff --git a/docs/source/modules/pipeline/load.rst b/docs/source/modules/pipeline/load.rst deleted file mode 100644 index 0de015b..0000000 --- a/docs/source/modules/pipeline/load.rst +++ /dev/null @@ -1,7 +0,0 @@ -Load module -=============== - -.. automodule:: pyro_risks.pipeline.load - :members: - :undoc-members: - :show-inheritance: \ No newline at end of file diff --git a/docs/source/modules/pipeline/modules.rst b/docs/source/modules/pipeline/modules.rst deleted file mode 100644 index d787d2e..0000000 --- a/docs/source/modules/pipeline/modules.rst +++ /dev/null @@ -1,13 +0,0 @@ -pyro\_risks.pipeline -==================== - -The pipeline subpackage contains modules defining the helper functions for each stage of the model lifecycle. -The following modules are available: - -.. toctree:: - :maxdepth: 4 - - load - train - evaluate - predict \ No newline at end of file diff --git a/docs/source/modules/pipeline/predict.rst b/docs/source/modules/pipeline/predict.rst deleted file mode 100644 index e967c71..0000000 --- a/docs/source/modules/pipeline/predict.rst +++ /dev/null @@ -1,7 +0,0 @@ -Predict module -============== - -.. automodule:: pyro_risks.pipeline.predict - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/modules/pipeline/train.rst b/docs/source/modules/pipeline/train.rst deleted file mode 100644 index 91be723..0000000 --- a/docs/source/modules/pipeline/train.rst +++ /dev/null @@ -1,7 +0,0 @@ -Train module -============ - -.. automodule:: pyro_risks.pipeline.train - :members: - :undoc-members: - :show-inheritance: \ No newline at end of file From dd927147e8f5e033e5d2c278e23cf8cf490b701b Mon Sep 17 00:00:00 2001 From: Joshua Sant'Anna <45068597+jsakv@users.noreply.github.com> Date: Tue, 2 Jul 2024 18:24:36 +0200 Subject: [PATCH 13/41] chore: Add Mock predictor --- app/api/inference.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/app/api/inference.py b/app/api/inference.py index 990153f..a813252 100644 --- a/app/api/inference.py +++ b/app/api/inference.py @@ -3,10 +3,13 @@ # This program is licensed under the Apache License version 2. # See LICENSE or go to for full license details. -from pyro_risks.models.predict import PyroRisk - __all__ = ["predictor"] -predictor = PyroRisk(which="RF") +class Mock: + def predict(self, date): + return {"01": 0.5, "02": 0.5} + + +predictor = Mock() From 2abe79c21e72e95938613aaf53e050aa8722df90 Mon Sep 17 00:00:00 2001 From: Joshua Sant'Anna <45068597+jsakv@users.noreply.github.com> Date: Tue, 2 Jul 2024 18:25:44 +0200 Subject: [PATCH 14/41] fix: Update dockerfile package name --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index a4d914b..0d6dc9f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,7 +12,7 @@ COPY ./requirements.txt requirements.txt COPY ./requirements-app.txt /usr/src/app/requirements-app.txt COPY ./setup.py setup.py COPY ./README.md README.md -COPY ./pyro_risks pyro_risks +COPY ./pyrorisks pyrorisks # install dependencies RUN apt-get update && \ From 58719d1e2bcb9f260aabad7b203d339f03f84e26 Mon Sep 17 00:00:00 2001 From: Joshua Sant'Anna <45068597+jsakv@users.noreply.github.com> Date: Tue, 2 Jul 2024 23:40:13 +0200 Subject: [PATCH 15/41] refactor: Remove setup.py --- requirements-app.txt | 3 -- requirements.txt | 24 --------------- setup.py | 70 -------------------------------------------- 3 files changed, 97 deletions(-) delete mode 100644 requirements-app.txt delete mode 100644 requirements.txt delete mode 100644 setup.py diff --git a/requirements-app.txt b/requirements-app.txt deleted file mode 100644 index 281e37b..0000000 --- a/requirements-app.txt +++ /dev/null @@ -1,3 +0,0 @@ -fastapi==0.61.1 -uvicorn>=0.11.1 -pyro_risks diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index ba82c03..0000000 --- a/requirements.txt +++ /dev/null @@ -1,24 +0,0 @@ -pandas>=1.1.4 -geopandas>=0.8.1 -Rtree>=0.9.4 -Shapely>=1.7.1 -netCDF4>=1.5.4 -requests>=2.24.0 -xlrd==1.2.0 -boto3==1.26.106 - -cdsapi - -numpy==1.26.4 -xarray>=0.16.1 -scipy>=1.5.4 - -scikit-learn>=0.23.2 -imbalanced-learn>=0.7.0 -xgboost==1.2.1 -cdsapi==0.4.0 -python-dotenv>=0.15.0 - -plot-metric==0.0.6 -dvc>=2.0.5 -dvc[gdrive]>=2.0.5 diff --git a/setup.py b/setup.py deleted file mode 100644 index e13f1d7..0000000 --- a/setup.py +++ /dev/null @@ -1,70 +0,0 @@ -# Copyright (C) 2021-2022, Pyronear. - -# This program is licensed under the Apache License version 2. -# See LICENSE or go to for full license details. - -#!usr/bin/python - -""" -Package installation setup -""" - -import os -import subprocess -from setuptools import setup, find_packages - -PACKAGE_NAME = "pyrorisks" -VERSION = "0.0.1" - - -with open("README.md") as f: - readme = f.read() - -requirements = [ - "boto3==1.28.45", - "botocore==1.31.45", - "click==8.1.7", - "geopandas==0.13.2", - "pandas==2.1.0", - "python-dotenv==1.0.0", - "rasterio==1.3.9", - "requests==2.31.0", - "numpy==1.26.4", - "sphinx_rtd_theme", -] - -setup( - name=PACKAGE_NAME, - version=VERSION, - author="Pyronear Contributors", - description="Pre-processing pipelines and models for wildfire forecasting and monitoring", - long_description=readme, - long_description_content_type="text/markdown", - url="https://github.com/pyronear/pyro-risks", - download_url="https://github.com/pyronear/pyro-risks/tags", - license="GPLv3", - classifiers=[ - "Development Status :: 2 - Pre-Alpha", - "Intended Audience :: Developers", - "Intended Audience :: Science/Research", - "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", - "Natural Language :: English", - "Operating System :: OS Independent", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.6", - "Programming Language :: Python :: 3.7", - "Topic :: Scientific/Engineering", - "Topic :: Scientific/Engineering :: Mathematics", - "Topic :: Scientific/Engineering :: Artificial Intelligence", - "Topic :: Software Development", - "Topic :: Software Development :: Libraries", - "Topic :: Software Development :: Libraries :: Python Modules", - ], - keywords=["data science", "time series", "machine learning"], - packages=find_packages(exclude=("test",)), - zip_safe=True, - python_requires=">=3.6.0", - include_package_data=True, - install_requires=requirements, - package_data={"": ["LICENSE"]}, -) From 34265a99bc1e2bcc1db5ed23c970fc077c7dd26f Mon Sep 17 00:00:00 2001 From: Joshua Sant'Anna <45068597+jsakv@users.noreply.github.com> Date: Tue, 2 Jul 2024 23:41:55 +0200 Subject: [PATCH 16/41] refactor: Remove config tooling --- .coveragerc | 2 -- .flake8 | 4 --- mypy.ini | 76 ----------------------------------------------------- 3 files changed, 82 deletions(-) delete mode 100644 .coveragerc delete mode 100644 .flake8 delete mode 100644 mypy.ini diff --git a/.coveragerc b/.coveragerc deleted file mode 100644 index a044130..0000000 --- a/.coveragerc +++ /dev/null @@ -1,2 +0,0 @@ -[run] -source = pyro_risks \ No newline at end of file diff --git a/.flake8 b/.flake8 deleted file mode 100644 index 0385d47..0000000 --- a/.flake8 +++ /dev/null @@ -1,4 +0,0 @@ -[flake8] -max-line-length = 120 -ignore = F401, E402, E265, F403, W503, W504, F821, W605 -exclude = .git, venv*, docs, build \ No newline at end of file diff --git a/mypy.ini b/mypy.ini deleted file mode 100644 index 18a36f4..0000000 --- a/mypy.ini +++ /dev/null @@ -1,76 +0,0 @@ -[mypy] -files = pyro_risks/*.py -show_error_codes = True -pretty = True - -[mypy-dotenv] -ignore_missing_imports = True - -[mypy-xarray] -ignore_missing_imports = True - -[mypy-pandas] -ignore_missing_imports = True - -[mypy-sklearn.ensemble] -ignore_missing_imports = True - -[mypy-sklearn.model_selection] -ignore_missing_imports = True - -[mypy-sklearn.metrics] -ignore_missing_imports = True - -[mypy-sklearn.base] -ignore_missing_imports = True - -[mypy-sklearn.impute] -ignore_missing_imports = True - -[mypy-sklearn.utils] -ignore_missing_imports = True - -[mypy-xgboost] -ignore_missing_imports = True - -[mypy-numpy] -ignore_missing_imports = True - -[mypy-geopandas] -ignore_missing_imports = True - -[mypy-cdsapi] -ignore_missing_imports = True - -[mypy-urllib3] -ignore_missing_imports = True - -[mypy-joblib] -ignore_missing_imports = True - -[mypy-imblearn] -ignore_missing_imports = True - -[mypy-imblearn.pipeline] -ignore_missing_imports = True - -[mypy-matplotlib] -ignore_missing_imports = True - -[mypy-matplotlib.pyplot] -ignore_missing_imports = True - -[mypy-plot_metric.functions] -ignore_missing_imports = True - -[mypy-shapely] -ignore_missing_imports = True - -[mypy-shapely.geometry] -ignore_missing_imports = True - -[mypy-scipy] -ignore_missing_imports = True - -[mypy-netCDF4] -ignore_missing_imports = True From b6060f9979bc63d9eae113e6834e59545016d744 Mon Sep 17 00:00:00 2001 From: Joshua Sant'Anna <45068597+jsakv@users.noreply.github.com> Date: Wed, 3 Jul 2024 00:04:33 +0200 Subject: [PATCH 17/41] refactor: Add poetry --- poetry.lock | 1304 ++++++++++++++++++++++++++++++++++++++++++++++++ poetry.toml | 2 + pyproject.toml | 102 ++++ 3 files changed, 1408 insertions(+) create mode 100644 poetry.lock create mode 100644 poetry.toml create mode 100644 pyproject.toml diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 0000000..cf193cf --- /dev/null +++ b/poetry.lock @@ -0,0 +1,1304 @@ +# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. + +[[package]] +name = "annotated-types" +version = "0.7.0" +description = "Reusable constraint types to use with typing.Annotated" +optional = false +python-versions = ">=3.8" +files = [ + {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, + {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, +] + +[[package]] +name = "anyio" +version = "3.7.1" +description = "High level compatibility layer for multiple asynchronous event loop implementations" +optional = false +python-versions = ">=3.7" +files = [ + {file = "anyio-3.7.1-py3-none-any.whl", hash = "sha256:91dee416e570e92c64041bd18b900d1d6fa78dff7048769ce5ac5ddad004fbb5"}, + {file = "anyio-3.7.1.tar.gz", hash = "sha256:44a3c9aba0f5defa43261a8b3efb97891f2bd7d804e0e1f56419befa1adfc780"}, +] + +[package.dependencies] +exceptiongroup = {version = "*", markers = "python_version < \"3.11\""} +idna = ">=2.8" +sniffio = ">=1.1" + +[package.extras] +doc = ["Sphinx", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme (>=1.2.2)", "sphinxcontrib-jquery"] +test = ["anyio[trio]", "coverage[toml] (>=4.5)", "hypothesis (>=4.0)", "mock (>=4)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] +trio = ["trio (<0.22)"] + +[[package]] +name = "black" +version = "23.12.1" +description = "The uncompromising code formatter." +optional = false +python-versions = ">=3.8" +files = [ + {file = "black-23.12.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e0aaf6041986767a5e0ce663c7a2f0e9eaf21e6ff87a5f95cbf3675bfd4c41d2"}, + {file = "black-23.12.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c88b3711d12905b74206227109272673edce0cb29f27e1385f33b0163c414bba"}, + {file = "black-23.12.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a920b569dc6b3472513ba6ddea21f440d4b4c699494d2e972a1753cdc25df7b0"}, + {file = "black-23.12.1-cp310-cp310-win_amd64.whl", hash = "sha256:3fa4be75ef2a6b96ea8d92b1587dd8cb3a35c7e3d51f0738ced0781c3aa3a5a3"}, + {file = "black-23.12.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8d4df77958a622f9b5a4c96edb4b8c0034f8434032ab11077ec6c56ae9f384ba"}, + {file = "black-23.12.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:602cfb1196dc692424c70b6507593a2b29aac0547c1be9a1d1365f0d964c353b"}, + {file = "black-23.12.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c4352800f14be5b4864016882cdba10755bd50805c95f728011bcb47a4afd59"}, + {file = "black-23.12.1-cp311-cp311-win_amd64.whl", hash = "sha256:0808494f2b2df923ffc5723ed3c7b096bd76341f6213989759287611e9837d50"}, + {file = "black-23.12.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:25e57fd232a6d6ff3f4478a6fd0580838e47c93c83eaf1ccc92d4faf27112c4e"}, + {file = "black-23.12.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2d9e13db441c509a3763a7a3d9a49ccc1b4e974a47be4e08ade2a228876500ec"}, + {file = "black-23.12.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d1bd9c210f8b109b1762ec9fd36592fdd528485aadb3f5849b2740ef17e674e"}, + {file = "black-23.12.1-cp312-cp312-win_amd64.whl", hash = "sha256:ae76c22bde5cbb6bfd211ec343ded2163bba7883c7bc77f6b756a1049436fbb9"}, + {file = "black-23.12.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1fa88a0f74e50e4487477bc0bb900c6781dbddfdfa32691e780bf854c3b4a47f"}, + {file = "black-23.12.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a4d6a9668e45ad99d2f8ec70d5c8c04ef4f32f648ef39048d010b0689832ec6d"}, + {file = "black-23.12.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b18fb2ae6c4bb63eebe5be6bd869ba2f14fd0259bda7d18a46b764d8fb86298a"}, + {file = "black-23.12.1-cp38-cp38-win_amd64.whl", hash = "sha256:c04b6d9d20e9c13f43eee8ea87d44156b8505ca8a3c878773f68b4e4812a421e"}, + {file = "black-23.12.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3e1b38b3135fd4c025c28c55ddfc236b05af657828a8a6abe5deec419a0b7055"}, + {file = "black-23.12.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4f0031eaa7b921db76decd73636ef3a12c942ed367d8c3841a0739412b260a54"}, + {file = "black-23.12.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:97e56155c6b737854e60a9ab1c598ff2533d57e7506d97af5481141671abf3ea"}, + {file = "black-23.12.1-cp39-cp39-win_amd64.whl", hash = "sha256:dd15245c8b68fe2b6bd0f32c1556509d11bb33aec9b5d0866dd8e2ed3dba09c2"}, + {file = "black-23.12.1-py3-none-any.whl", hash = "sha256:78baad24af0f033958cad29731e27363183e140962595def56423e626f4bee3e"}, + {file = "black-23.12.1.tar.gz", hash = "sha256:4ce3ef14ebe8d9509188014d96af1c456a910d5b5cbf434a09fef7e024b3d0d5"}, +] + +[package.dependencies] +click = ">=8.0.0" +mypy-extensions = ">=0.4.3" +packaging = ">=22.0" +pathspec = ">=0.9.0" +platformdirs = ">=2" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""} + +[package.extras] +colorama = ["colorama (>=0.4.3)"] +d = ["aiohttp (>=3.7.4)", "aiohttp (>=3.7.4,!=3.9.0)"] +jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] +uvloop = ["uvloop (>=0.15.2)"] + +[[package]] +name = "boto3" +version = "1.34.138" +description = "The AWS SDK for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "boto3-1.34.138-py3-none-any.whl", hash = "sha256:81518aa95fad71279411fb5c94da4b4a554a5d53fc876faca62b7b5c8737f1cb"}, + {file = "boto3-1.34.138.tar.gz", hash = "sha256:f79c15e33eb7706f197d98d828b193cf0891966682ad3ec5e900f6f9e7362e35"}, +] + +[package.dependencies] +botocore = ">=1.34.138,<1.35.0" +jmespath = ">=0.7.1,<2.0.0" +s3transfer = ">=0.10.0,<0.11.0" + +[package.extras] +crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] + +[[package]] +name = "botocore" +version = "1.34.138" +description = "Low-level, data-driven core of boto 3." +optional = false +python-versions = ">=3.8" +files = [ + {file = "botocore-1.34.138-py3-none-any.whl", hash = "sha256:84e96a954c39a6f09cae4ea95b2ae582b5ae01b5040c92507b60509c9be5377a"}, + {file = "botocore-1.34.138.tar.gz", hash = "sha256:f558bbea96c4a4abbaeeedc477dabb00902311ba1ca6327974a6819b9f384920"}, +] + +[package.dependencies] +jmespath = ">=0.7.1,<2.0.0" +python-dateutil = ">=2.1,<3.0.0" +urllib3 = {version = ">=1.25.4,<2.2.0 || >2.2.0,<3", markers = "python_version >= \"3.10\""} + +[package.extras] +crt = ["awscrt (==0.20.11)"] + +[[package]] +name = "certifi" +version = "2024.6.2" +description = "Python package for providing Mozilla's CA Bundle." +optional = false +python-versions = ">=3.6" +files = [ + {file = "certifi-2024.6.2-py3-none-any.whl", hash = "sha256:ddc6c8ce995e6987e7faf5e3f1b02b302836a0e5d98ece18392cb1a36c72ad56"}, + {file = "certifi-2024.6.2.tar.gz", hash = "sha256:3cd43f1c6fa7dedc5899d69d3ad0398fd018ad1a17fba83ddaf78aa46c747516"}, +] + +[[package]] +name = "cfgv" +version = "3.4.0" +description = "Validate configuration and produce human readable error messages." +optional = false +python-versions = ">=3.8" +files = [ + {file = "cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9"}, + {file = "cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560"}, +] + +[[package]] +name = "charset-normalizer" +version = "3.3.2" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, + {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, +] + +[[package]] +name = "click" +version = "8.1.7" +description = "Composable command line interface toolkit" +optional = false +python-versions = ">=3.7" +files = [ + {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, + {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "coverage" +version = "7.5.4" +description = "Code coverage measurement for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "coverage-7.5.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6cfb5a4f556bb51aba274588200a46e4dd6b505fb1a5f8c5ae408222eb416f99"}, + {file = "coverage-7.5.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2174e7c23e0a454ffe12267a10732c273243b4f2d50d07544a91198f05c48f47"}, + {file = "coverage-7.5.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2214ee920787d85db1b6a0bd9da5f8503ccc8fcd5814d90796c2f2493a2f4d2e"}, + {file = "coverage-7.5.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1137f46adb28e3813dec8c01fefadcb8c614f33576f672962e323b5128d9a68d"}, + {file = "coverage-7.5.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b385d49609f8e9efc885790a5a0e89f2e3ae042cdf12958b6034cc442de428d3"}, + {file = "coverage-7.5.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b4a474f799456e0eb46d78ab07303286a84a3140e9700b9e154cfebc8f527016"}, + {file = "coverage-7.5.4-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:5cd64adedf3be66f8ccee418473c2916492d53cbafbfcff851cbec5a8454b136"}, + {file = "coverage-7.5.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e564c2cf45d2f44a9da56f4e3a26b2236504a496eb4cb0ca7221cd4cc7a9aca9"}, + {file = "coverage-7.5.4-cp310-cp310-win32.whl", hash = "sha256:7076b4b3a5f6d2b5d7f1185fde25b1e54eb66e647a1dfef0e2c2bfaf9b4c88c8"}, + {file = "coverage-7.5.4-cp310-cp310-win_amd64.whl", hash = "sha256:018a12985185038a5b2bcafab04ab833a9a0f2c59995b3cec07e10074c78635f"}, + {file = "coverage-7.5.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:db14f552ac38f10758ad14dd7b983dbab424e731588d300c7db25b6f89e335b5"}, + {file = "coverage-7.5.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3257fdd8e574805f27bb5342b77bc65578e98cbc004a92232106344053f319ba"}, + {file = "coverage-7.5.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3a6612c99081d8d6134005b1354191e103ec9705d7ba2754e848211ac8cacc6b"}, + {file = "coverage-7.5.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d45d3cbd94159c468b9b8c5a556e3f6b81a8d1af2a92b77320e887c3e7a5d080"}, + {file = "coverage-7.5.4-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ed550e7442f278af76d9d65af48069f1fb84c9f745ae249c1a183c1e9d1b025c"}, + {file = "coverage-7.5.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7a892be37ca35eb5019ec85402c3371b0f7cda5ab5056023a7f13da0961e60da"}, + {file = "coverage-7.5.4-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8192794d120167e2a64721d88dbd688584675e86e15d0569599257566dec9bf0"}, + {file = "coverage-7.5.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:820bc841faa502e727a48311948e0461132a9c8baa42f6b2b84a29ced24cc078"}, + {file = "coverage-7.5.4-cp311-cp311-win32.whl", hash = "sha256:6aae5cce399a0f065da65c7bb1e8abd5c7a3043da9dceb429ebe1b289bc07806"}, + {file = "coverage-7.5.4-cp311-cp311-win_amd64.whl", hash = "sha256:d2e344d6adc8ef81c5a233d3a57b3c7d5181f40e79e05e1c143da143ccb6377d"}, + {file = "coverage-7.5.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:54317c2b806354cbb2dc7ac27e2b93f97096912cc16b18289c5d4e44fc663233"}, + {file = "coverage-7.5.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:042183de01f8b6d531e10c197f7f0315a61e8d805ab29c5f7b51a01d62782747"}, + {file = "coverage-7.5.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a6bb74ed465d5fb204b2ec41d79bcd28afccf817de721e8a807d5141c3426638"}, + {file = "coverage-7.5.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3d45ff86efb129c599a3b287ae2e44c1e281ae0f9a9bad0edc202179bcc3a2e"}, + {file = "coverage-7.5.4-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5013ed890dc917cef2c9f765c4c6a8ae9df983cd60dbb635df8ed9f4ebc9f555"}, + {file = "coverage-7.5.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1014fbf665fef86cdfd6cb5b7371496ce35e4d2a00cda501cf9f5b9e6fced69f"}, + {file = "coverage-7.5.4-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3684bc2ff328f935981847082ba4fdc950d58906a40eafa93510d1b54c08a66c"}, + {file = "coverage-7.5.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:581ea96f92bf71a5ec0974001f900db495488434a6928a2ca7f01eee20c23805"}, + {file = "coverage-7.5.4-cp312-cp312-win32.whl", hash = "sha256:73ca8fbc5bc622e54627314c1a6f1dfdd8db69788f3443e752c215f29fa87a0b"}, + {file = "coverage-7.5.4-cp312-cp312-win_amd64.whl", hash = "sha256:cef4649ec906ea7ea5e9e796e68b987f83fa9a718514fe147f538cfeda76d7a7"}, + {file = "coverage-7.5.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cdd31315fc20868c194130de9ee6bfd99755cc9565edff98ecc12585b90be882"}, + {file = "coverage-7.5.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:02ff6e898197cc1e9fa375581382b72498eb2e6d5fc0b53f03e496cfee3fac6d"}, + {file = "coverage-7.5.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d05c16cf4b4c2fc880cb12ba4c9b526e9e5d5bb1d81313d4d732a5b9fe2b9d53"}, + {file = "coverage-7.5.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c5986ee7ea0795a4095ac4d113cbb3448601efca7f158ec7f7087a6c705304e4"}, + {file = "coverage-7.5.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5df54843b88901fdc2f598ac06737f03d71168fd1175728054c8f5a2739ac3e4"}, + {file = "coverage-7.5.4-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:ab73b35e8d109bffbda9a3e91c64e29fe26e03e49addf5b43d85fc426dde11f9"}, + {file = "coverage-7.5.4-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:aea072a941b033813f5e4814541fc265a5c12ed9720daef11ca516aeacd3bd7f"}, + {file = "coverage-7.5.4-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:16852febd96acd953b0d55fc842ce2dac1710f26729b31c80b940b9afcd9896f"}, + {file = "coverage-7.5.4-cp38-cp38-win32.whl", hash = "sha256:8f894208794b164e6bd4bba61fc98bf6b06be4d390cf2daacfa6eca0a6d2bb4f"}, + {file = "coverage-7.5.4-cp38-cp38-win_amd64.whl", hash = "sha256:e2afe743289273209c992075a5a4913e8d007d569a406ffed0bd080ea02b0633"}, + {file = "coverage-7.5.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b95c3a8cb0463ba9f77383d0fa8c9194cf91f64445a63fc26fb2327e1e1eb088"}, + {file = "coverage-7.5.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3d7564cc09dd91b5a6001754a5b3c6ecc4aba6323baf33a12bd751036c998be4"}, + {file = "coverage-7.5.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:44da56a2589b684813f86d07597fdf8a9c6ce77f58976727329272f5a01f99f7"}, + {file = "coverage-7.5.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e16f3d6b491c48c5ae726308e6ab1e18ee830b4cdd6913f2d7f77354b33f91c8"}, + {file = "coverage-7.5.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dbc5958cb471e5a5af41b0ddaea96a37e74ed289535e8deca404811f6cb0bc3d"}, + {file = "coverage-7.5.4-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:a04e990a2a41740b02d6182b498ee9796cf60eefe40cf859b016650147908029"}, + {file = "coverage-7.5.4-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:ddbd2f9713a79e8e7242d7c51f1929611e991d855f414ca9996c20e44a895f7c"}, + {file = "coverage-7.5.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:b1ccf5e728ccf83acd313c89f07c22d70d6c375a9c6f339233dcf792094bcbf7"}, + {file = "coverage-7.5.4-cp39-cp39-win32.whl", hash = "sha256:56b4eafa21c6c175b3ede004ca12c653a88b6f922494b023aeb1e836df953ace"}, + {file = "coverage-7.5.4-cp39-cp39-win_amd64.whl", hash = "sha256:65e528e2e921ba8fd67d9055e6b9f9e34b21ebd6768ae1c1723f4ea6ace1234d"}, + {file = "coverage-7.5.4-pp38.pp39.pp310-none-any.whl", hash = "sha256:79b356f3dd5b26f3ad23b35c75dbdaf1f9e2450b6bcefc6d0825ea0aa3f86ca5"}, + {file = "coverage-7.5.4.tar.gz", hash = "sha256:a44963520b069e12789d0faea4e9fdb1e410cdc4aab89d94f7f55cbb7fef0353"}, +] + +[package.extras] +toml = ["tomli"] + +[[package]] +name = "distlib" +version = "0.3.8" +description = "Distribution utilities" +optional = false +python-versions = "*" +files = [ + {file = "distlib-0.3.8-py2.py3-none-any.whl", hash = "sha256:034db59a0b96f8ca18035f36290806a9a6e6bd9d1ff91e45a7f172eb17e51784"}, + {file = "distlib-0.3.8.tar.gz", hash = "sha256:1530ea13e350031b6312d8580ddb6b27a104275a31106523b8f123787f494f64"}, +] + +[[package]] +name = "exceptiongroup" +version = "1.2.1" +description = "Backport of PEP 654 (exception groups)" +optional = false +python-versions = ">=3.7" +files = [ + {file = "exceptiongroup-1.2.1-py3-none-any.whl", hash = "sha256:5258b9ed329c5bbdd31a309f53cbfb0b155341807f6ff7606a1e801a891b29ad"}, + {file = "exceptiongroup-1.2.1.tar.gz", hash = "sha256:a4785e48b045528f5bfe627b6ad554ff32def154f42372786903b7abcfe1aa16"}, +] + +[package.extras] +test = ["pytest (>=6)"] + +[[package]] +name = "fastapi" +version = "0.103.2" +description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production" +optional = false +python-versions = ">=3.7" +files = [ + {file = "fastapi-0.103.2-py3-none-any.whl", hash = "sha256:3270de872f0fe9ec809d4bd3d4d890c6d5cc7b9611d721d6438f9dacc8c4ef2e"}, + {file = "fastapi-0.103.2.tar.gz", hash = "sha256:75a11f6bfb8fc4d2bec0bd710c2d5f2829659c0e8c0afd5560fdda6ce25ec653"}, +] + +[package.dependencies] +anyio = ">=3.7.1,<4.0.0" +pydantic = ">=1.7.4,<1.8 || >1.8,<1.8.1 || >1.8.1,<2.0.0 || >2.0.0,<2.0.1 || >2.0.1,<2.1.0 || >2.1.0,<3.0.0" +starlette = ">=0.27.0,<0.28.0" +typing-extensions = ">=4.5.0" + +[package.extras] +all = ["email-validator (>=2.0.0)", "httpx (>=0.23.0)", "itsdangerous (>=1.1.0)", "jinja2 (>=2.11.2)", "orjson (>=3.2.1)", "pydantic-extra-types (>=2.0.0)", "pydantic-settings (>=2.0.0)", "python-multipart (>=0.0.5)", "pyyaml (>=5.3.1)", "ujson (>=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0)", "uvicorn[standard] (>=0.12.0)"] + +[[package]] +name = "filelock" +version = "3.15.4" +description = "A platform independent file lock." +optional = false +python-versions = ">=3.8" +files = [ + {file = "filelock-3.15.4-py3-none-any.whl", hash = "sha256:6ca1fffae96225dab4c6eaf1c4f4f28cd2568d3ec2a44e15a08520504de468e7"}, + {file = "filelock-3.15.4.tar.gz", hash = "sha256:2207938cbc1844345cb01a5a95524dae30f0ce089eba5b00378295a17e3e90cb"}, +] + +[package.extras] +docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8.0.1)", "pytest (>=7.4.3)", "pytest-asyncio (>=0.21)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)", "virtualenv (>=20.26.2)"] +typing = ["typing-extensions (>=4.8)"] + +[[package]] +name = "geopandas" +version = "1.0.1" +description = "Geographic pandas extensions" +optional = false +python-versions = ">=3.9" +files = [ + {file = "geopandas-1.0.1-py3-none-any.whl", hash = "sha256:01e147d9420cc374d26f51fc23716ac307f32b49406e4bd8462c07e82ed1d3d6"}, + {file = "geopandas-1.0.1.tar.gz", hash = "sha256:b8bf70a5534588205b7a56646e2082fb1de9a03599651b3d80c99ea4c2ca08ab"}, +] + +[package.dependencies] +numpy = ">=1.22" +packaging = "*" +pandas = ">=1.4.0" +pyogrio = ">=0.7.2" +pyproj = ">=3.3.0" +shapely = ">=2.0.0" + +[package.extras] +all = ["GeoAlchemy2", "SQLAlchemy (>=1.3)", "folium", "geopy", "mapclassify", "matplotlib (>=3.5.0)", "psycopg-binary (>=3.1.0)", "pyarrow (>=8.0.0)", "xyzservices"] +dev = ["black", "codecov", "pre-commit", "pytest (>=3.1.0)", "pytest-cov", "pytest-xdist"] + +[[package]] +name = "h11" +version = "0.14.0" +description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" +optional = false +python-versions = ">=3.7" +files = [ + {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, + {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, +] + +[[package]] +name = "identify" +version = "2.5.36" +description = "File identification library for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "identify-2.5.36-py2.py3-none-any.whl", hash = "sha256:37d93f380f4de590500d9dba7db359d0d3da95ffe7f9de1753faa159e71e7dfa"}, + {file = "identify-2.5.36.tar.gz", hash = "sha256:e5e00f54165f9047fbebeb4a560f9acfb8af4c88232be60a488e9b68d122745d"}, +] + +[package.extras] +license = ["ukkonen"] + +[[package]] +name = "idna" +version = "3.7" +description = "Internationalized Domain Names in Applications (IDNA)" +optional = false +python-versions = ">=3.5" +files = [ + {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, + {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, +] + +[[package]] +name = "iniconfig" +version = "2.0.0" +description = "brain-dead simple config-ini parsing" +optional = false +python-versions = ">=3.7" +files = [ + {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, + {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, +] + +[[package]] +name = "jmespath" +version = "1.0.1" +description = "JSON Matching Expressions" +optional = false +python-versions = ">=3.7" +files = [ + {file = "jmespath-1.0.1-py3-none-any.whl", hash = "sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980"}, + {file = "jmespath-1.0.1.tar.gz", hash = "sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe"}, +] + +[[package]] +name = "mypy" +version = "1.10.1" +description = "Optional static typing for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "mypy-1.10.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e36f229acfe250dc660790840916eb49726c928e8ce10fbdf90715090fe4ae02"}, + {file = "mypy-1.10.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:51a46974340baaa4145363b9e051812a2446cf583dfaeba124af966fa44593f7"}, + {file = "mypy-1.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:901c89c2d67bba57aaaca91ccdb659aa3a312de67f23b9dfb059727cce2e2e0a"}, + {file = "mypy-1.10.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0cd62192a4a32b77ceb31272d9e74d23cd88c8060c34d1d3622db3267679a5d9"}, + {file = "mypy-1.10.1-cp310-cp310-win_amd64.whl", hash = "sha256:a2cbc68cb9e943ac0814c13e2452d2046c2f2b23ff0278e26599224cf164e78d"}, + {file = "mypy-1.10.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:bd6f629b67bb43dc0d9211ee98b96d8dabc97b1ad38b9b25f5e4c4d7569a0c6a"}, + {file = "mypy-1.10.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a1bbb3a6f5ff319d2b9d40b4080d46cd639abe3516d5a62c070cf0114a457d84"}, + {file = "mypy-1.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8edd4e9bbbc9d7b79502eb9592cab808585516ae1bcc1446eb9122656c6066f"}, + {file = "mypy-1.10.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6166a88b15f1759f94a46fa474c7b1b05d134b1b61fca627dd7335454cc9aa6b"}, + {file = "mypy-1.10.1-cp311-cp311-win_amd64.whl", hash = "sha256:5bb9cd11c01c8606a9d0b83ffa91d0b236a0e91bc4126d9ba9ce62906ada868e"}, + {file = "mypy-1.10.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d8681909f7b44d0b7b86e653ca152d6dff0eb5eb41694e163c6092124f8246d7"}, + {file = "mypy-1.10.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:378c03f53f10bbdd55ca94e46ec3ba255279706a6aacaecac52ad248f98205d3"}, + {file = "mypy-1.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6bacf8f3a3d7d849f40ca6caea5c055122efe70e81480c8328ad29c55c69e93e"}, + {file = "mypy-1.10.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:701b5f71413f1e9855566a34d6e9d12624e9e0a8818a5704d74d6b0402e66c04"}, + {file = "mypy-1.10.1-cp312-cp312-win_amd64.whl", hash = "sha256:3c4c2992f6ea46ff7fce0072642cfb62af7a2484efe69017ed8b095f7b39ef31"}, + {file = "mypy-1.10.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:604282c886497645ffb87b8f35a57ec773a4a2721161e709a4422c1636ddde5c"}, + {file = "mypy-1.10.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37fd87cab83f09842653f08de066ee68f1182b9b5282e4634cdb4b407266bade"}, + {file = "mypy-1.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8addf6313777dbb92e9564c5d32ec122bf2c6c39d683ea64de6a1fd98b90fe37"}, + {file = "mypy-1.10.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5cc3ca0a244eb9a5249c7c583ad9a7e881aa5d7b73c35652296ddcdb33b2b9c7"}, + {file = "mypy-1.10.1-cp38-cp38-win_amd64.whl", hash = "sha256:1b3a2ffce52cc4dbaeee4df762f20a2905aa171ef157b82192f2e2f368eec05d"}, + {file = "mypy-1.10.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fe85ed6836165d52ae8b88f99527d3d1b2362e0cb90b005409b8bed90e9059b3"}, + {file = "mypy-1.10.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c2ae450d60d7d020d67ab440c6e3fae375809988119817214440033f26ddf7bf"}, + {file = "mypy-1.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6be84c06e6abd72f960ba9a71561c14137a583093ffcf9bbfaf5e613d63fa531"}, + {file = "mypy-1.10.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:2189ff1e39db399f08205e22a797383613ce1cb0cb3b13d8bcf0170e45b96cc3"}, + {file = "mypy-1.10.1-cp39-cp39-win_amd64.whl", hash = "sha256:97a131ee36ac37ce9581f4220311247ab6cba896b4395b9c87af0675a13a755f"}, + {file = "mypy-1.10.1-py3-none-any.whl", hash = "sha256:71d8ac0b906354ebda8ef1673e5fde785936ac1f29ff6987c7483cfbd5a4235a"}, + {file = "mypy-1.10.1.tar.gz", hash = "sha256:1f8f492d7db9e3593ef42d4f115f04e556130f2819ad33ab84551403e97dd4c0"}, +] + +[package.dependencies] +mypy-extensions = ">=1.0.0" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +typing-extensions = ">=4.1.0" + +[package.extras] +dmypy = ["psutil (>=4.0)"] +install-types = ["pip"] +mypyc = ["setuptools (>=50)"] +reports = ["lxml"] + +[[package]] +name = "mypy-extensions" +version = "1.0.0" +description = "Type system extensions for programs checked with the mypy type checker." +optional = false +python-versions = ">=3.5" +files = [ + {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, + {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, +] + +[[package]] +name = "nodeenv" +version = "1.9.1" +description = "Node.js virtual environment builder" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9"}, + {file = "nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f"}, +] + +[[package]] +name = "numpy" +version = "2.0.0" +description = "Fundamental package for array computing in Python" +optional = false +python-versions = ">=3.9" +files = [ + {file = "numpy-2.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:04494f6ec467ccb5369d1808570ae55f6ed9b5809d7f035059000a37b8d7e86f"}, + {file = "numpy-2.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2635dbd200c2d6faf2ef9a0d04f0ecc6b13b3cad54f7c67c61155138835515d2"}, + {file = "numpy-2.0.0-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:0a43f0974d501842866cc83471bdb0116ba0dffdbaac33ec05e6afed5b615238"}, + {file = "numpy-2.0.0-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:8d83bb187fb647643bd56e1ae43f273c7f4dbcdf94550d7938cfc32566756514"}, + {file = "numpy-2.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79e843d186c8fb1b102bef3e2bc35ef81160ffef3194646a7fdd6a73c6b97196"}, + {file = "numpy-2.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d7696c615765091cc5093f76fd1fa069870304beaccfd58b5dcc69e55ef49c1"}, + {file = "numpy-2.0.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b4c76e3d4c56f145d41b7b6751255feefae92edbc9a61e1758a98204200f30fc"}, + {file = "numpy-2.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:acd3a644e4807e73b4e1867b769fbf1ce8c5d80e7caaef0d90dcdc640dfc9787"}, + {file = "numpy-2.0.0-cp310-cp310-win32.whl", hash = "sha256:cee6cc0584f71adefe2c908856ccc98702baf95ff80092e4ca46061538a2ba98"}, + {file = "numpy-2.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:ed08d2703b5972ec736451b818c2eb9da80d66c3e84aed1deeb0c345fefe461b"}, + {file = "numpy-2.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ad0c86f3455fbd0de6c31a3056eb822fc939f81b1618f10ff3406971893b62a5"}, + {file = "numpy-2.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e7f387600d424f91576af20518334df3d97bc76a300a755f9a8d6e4f5cadd289"}, + {file = "numpy-2.0.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:34f003cb88b1ba38cb9a9a4a3161c1604973d7f9d5552c38bc2f04f829536609"}, + {file = "numpy-2.0.0-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:b6f6a8f45d0313db07d6d1d37bd0b112f887e1369758a5419c0370ba915b3871"}, + {file = "numpy-2.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f64641b42b2429f56ee08b4f427a4d2daf916ec59686061de751a55aafa22e4"}, + {file = "numpy-2.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a7039a136017eaa92c1848152827e1424701532ca8e8967fe480fe1569dae581"}, + {file = "numpy-2.0.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:46e161722e0f619749d1cd892167039015b2c2817296104487cd03ed4a955995"}, + {file = "numpy-2.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0e50842b2295ba8414c8c1d9d957083d5dfe9e16828b37de883f51fc53c4016f"}, + {file = "numpy-2.0.0-cp311-cp311-win32.whl", hash = "sha256:2ce46fd0b8a0c947ae047d222f7136fc4d55538741373107574271bc00e20e8f"}, + {file = "numpy-2.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:fbd6acc766814ea6443628f4e6751d0da6593dae29c08c0b2606164db026970c"}, + {file = "numpy-2.0.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:354f373279768fa5a584bac997de6a6c9bc535c482592d7a813bb0c09be6c76f"}, + {file = "numpy-2.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4d2f62e55a4cd9c58c1d9a1c9edaedcd857a73cb6fda875bf79093f9d9086f85"}, + {file = "numpy-2.0.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:1e72728e7501a450288fc8e1f9ebc73d90cfd4671ebbd631f3e7857c39bd16f2"}, + {file = "numpy-2.0.0-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:84554fc53daa8f6abf8e8a66e076aff6ece62de68523d9f665f32d2fc50fd66e"}, + {file = "numpy-2.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c73aafd1afca80afecb22718f8700b40ac7cab927b8abab3c3e337d70e10e5a2"}, + {file = "numpy-2.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49d9f7d256fbc804391a7f72d4a617302b1afac1112fac19b6c6cec63fe7fe8a"}, + {file = "numpy-2.0.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:0ec84b9ba0654f3b962802edc91424331f423dcf5d5f926676e0150789cb3d95"}, + {file = "numpy-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:feff59f27338135776f6d4e2ec7aeeac5d5f7a08a83e80869121ef8164b74af9"}, + {file = "numpy-2.0.0-cp312-cp312-win32.whl", hash = "sha256:c5a59996dc61835133b56a32ebe4ef3740ea5bc19b3983ac60cc32be5a665d54"}, + {file = "numpy-2.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:a356364941fb0593bb899a1076b92dfa2029f6f5b8ba88a14fd0984aaf76d0df"}, + {file = "numpy-2.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e61155fae27570692ad1d327e81c6cf27d535a5d7ef97648a17d922224b216de"}, + {file = "numpy-2.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4554eb96f0fd263041baf16cf0881b3f5dafae7a59b1049acb9540c4d57bc8cb"}, + {file = "numpy-2.0.0-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:903703372d46bce88b6920a0cd86c3ad82dae2dbef157b5fc01b70ea1cfc430f"}, + {file = "numpy-2.0.0-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:3e8e01233d57639b2e30966c63d36fcea099d17c53bf424d77f088b0f4babd86"}, + {file = "numpy-2.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1cde1753efe513705a0c6d28f5884e22bdc30438bf0085c5c486cdaff40cd67a"}, + {file = "numpy-2.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:821eedb7165ead9eebdb569986968b541f9908979c2da8a4967ecac4439bae3d"}, + {file = "numpy-2.0.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9a1712c015831da583b21c5bfe15e8684137097969c6d22e8316ba66b5baabe4"}, + {file = "numpy-2.0.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:9c27f0946a3536403efb0e1c28def1ae6730a72cd0d5878db38824855e3afc44"}, + {file = "numpy-2.0.0-cp39-cp39-win32.whl", hash = "sha256:63b92c512d9dbcc37f9d81b123dec99fdb318ba38c8059afc78086fe73820275"}, + {file = "numpy-2.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:3f6bed7f840d44c08ebdb73b1825282b801799e325bcbdfa6bc5c370e5aecc65"}, + {file = "numpy-2.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:9416a5c2e92ace094e9f0082c5fd473502c91651fb896bc17690d6fc475128d6"}, + {file = "numpy-2.0.0-pp39-pypy39_pp73-macosx_14_0_x86_64.whl", hash = "sha256:17067d097ed036636fa79f6a869ac26df7db1ba22039d962422506640314933a"}, + {file = "numpy-2.0.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:38ecb5b0582cd125f67a629072fed6f83562d9dd04d7e03256c9829bdec027ad"}, + {file = "numpy-2.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:cef04d068f5fb0518a77857953193b6bb94809a806bd0a14983a8f12ada060c9"}, + {file = "numpy-2.0.0.tar.gz", hash = "sha256:cf5d1c9e6837f8af9f92b6bd3e86d513cdc11f60fd62185cc49ec7d1aba34864"}, +] + +[[package]] +name = "packaging" +version = "24.1" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"}, + {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"}, +] + +[[package]] +name = "pandas" +version = "2.2.2" +description = "Powerful data structures for data analysis, time series, and statistics" +optional = false +python-versions = ">=3.9" +files = [ + {file = "pandas-2.2.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:90c6fca2acf139569e74e8781709dccb6fe25940488755716d1d354d6bc58bce"}, + {file = "pandas-2.2.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c7adfc142dac335d8c1e0dcbd37eb8617eac386596eb9e1a1b77791cf2498238"}, + {file = "pandas-2.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4abfe0be0d7221be4f12552995e58723c7422c80a659da13ca382697de830c08"}, + {file = "pandas-2.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8635c16bf3d99040fdf3ca3db669a7250ddf49c55dc4aa8fe0ae0fa8d6dcc1f0"}, + {file = "pandas-2.2.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:40ae1dffb3967a52203105a077415a86044a2bea011b5f321c6aa64b379a3f51"}, + {file = "pandas-2.2.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8e5a0b00e1e56a842f922e7fae8ae4077aee4af0acb5ae3622bd4b4c30aedf99"}, + {file = "pandas-2.2.2-cp310-cp310-win_amd64.whl", hash = "sha256:ddf818e4e6c7c6f4f7c8a12709696d193976b591cc7dc50588d3d1a6b5dc8772"}, + {file = "pandas-2.2.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:696039430f7a562b74fa45f540aca068ea85fa34c244d0deee539cb6d70aa288"}, + {file = "pandas-2.2.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8e90497254aacacbc4ea6ae5e7a8cd75629d6ad2b30025a4a8b09aa4faf55151"}, + {file = "pandas-2.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58b84b91b0b9f4bafac2a0ac55002280c094dfc6402402332c0913a59654ab2b"}, + {file = "pandas-2.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d2123dc9ad6a814bcdea0f099885276b31b24f7edf40f6cdbc0912672e22eee"}, + {file = "pandas-2.2.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:2925720037f06e89af896c70bca73459d7e6a4be96f9de79e2d440bd499fe0db"}, + {file = "pandas-2.2.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0cace394b6ea70c01ca1595f839cf193df35d1575986e484ad35c4aeae7266c1"}, + {file = "pandas-2.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:873d13d177501a28b2756375d59816c365e42ed8417b41665f346289adc68d24"}, + {file = "pandas-2.2.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:9dfde2a0ddef507a631dc9dc4af6a9489d5e2e740e226ad426a05cabfbd7c8ef"}, + {file = "pandas-2.2.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e9b79011ff7a0f4b1d6da6a61aa1aa604fb312d6647de5bad20013682d1429ce"}, + {file = "pandas-2.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1cb51fe389360f3b5a4d57dbd2848a5f033350336ca3b340d1c53a1fad33bcad"}, + {file = "pandas-2.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eee3a87076c0756de40b05c5e9a6069c035ba43e8dd71c379e68cab2c20f16ad"}, + {file = "pandas-2.2.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3e374f59e440d4ab45ca2fffde54b81ac3834cf5ae2cdfa69c90bc03bde04d76"}, + {file = "pandas-2.2.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:43498c0bdb43d55cb162cdc8c06fac328ccb5d2eabe3cadeb3529ae6f0517c32"}, + {file = "pandas-2.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:d187d355ecec3629624fccb01d104da7d7f391db0311145817525281e2804d23"}, + {file = "pandas-2.2.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0ca6377b8fca51815f382bd0b697a0814c8bda55115678cbc94c30aacbb6eff2"}, + {file = "pandas-2.2.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9057e6aa78a584bc93a13f0a9bf7e753a5e9770a30b4d758b8d5f2a62a9433cd"}, + {file = "pandas-2.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:001910ad31abc7bf06f49dcc903755d2f7f3a9186c0c040b827e522e9cef0863"}, + {file = "pandas-2.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66b479b0bd07204e37583c191535505410daa8df638fd8e75ae1b383851fe921"}, + {file = "pandas-2.2.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a77e9d1c386196879aa5eb712e77461aaee433e54c68cf253053a73b7e49c33a"}, + {file = "pandas-2.2.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:92fd6b027924a7e178ac202cfbe25e53368db90d56872d20ffae94b96c7acc57"}, + {file = "pandas-2.2.2-cp39-cp39-win_amd64.whl", hash = "sha256:640cef9aa381b60e296db324337a554aeeb883ead99dc8f6c18e81a93942f5f4"}, + {file = "pandas-2.2.2.tar.gz", hash = "sha256:9e79019aba43cb4fda9e4d983f8e88ca0373adbb697ae9c6c43093218de28b54"}, +] + +[package.dependencies] +numpy = [ + {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, + {version = ">=1.22.4", markers = "python_version < \"3.11\""}, + {version = ">=1.23.2", markers = "python_version == \"3.11\""}, +] +python-dateutil = ">=2.8.2" +pytz = ">=2020.1" +tzdata = ">=2022.7" + +[package.extras] +all = ["PyQt5 (>=5.15.9)", "SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)", "beautifulsoup4 (>=4.11.2)", "bottleneck (>=1.3.6)", "dataframe-api-compat (>=0.1.7)", "fastparquet (>=2022.12.0)", "fsspec (>=2022.11.0)", "gcsfs (>=2022.11.0)", "html5lib (>=1.1)", "hypothesis (>=6.46.1)", "jinja2 (>=3.1.2)", "lxml (>=4.9.2)", "matplotlib (>=3.6.3)", "numba (>=0.56.4)", "numexpr (>=2.8.4)", "odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "pandas-gbq (>=0.19.0)", "psycopg2 (>=2.9.6)", "pyarrow (>=10.0.1)", "pymysql (>=1.0.2)", "pyreadstat (>=1.2.0)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "qtpy (>=2.3.0)", "s3fs (>=2022.11.0)", "scipy (>=1.10.0)", "tables (>=3.8.0)", "tabulate (>=0.9.0)", "xarray (>=2022.12.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)", "zstandard (>=0.19.0)"] +aws = ["s3fs (>=2022.11.0)"] +clipboard = ["PyQt5 (>=5.15.9)", "qtpy (>=2.3.0)"] +compression = ["zstandard (>=0.19.0)"] +computation = ["scipy (>=1.10.0)", "xarray (>=2022.12.0)"] +consortium-standard = ["dataframe-api-compat (>=0.1.7)"] +excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)"] +feather = ["pyarrow (>=10.0.1)"] +fss = ["fsspec (>=2022.11.0)"] +gcp = ["gcsfs (>=2022.11.0)", "pandas-gbq (>=0.19.0)"] +hdf5 = ["tables (>=3.8.0)"] +html = ["beautifulsoup4 (>=4.11.2)", "html5lib (>=1.1)", "lxml (>=4.9.2)"] +mysql = ["SQLAlchemy (>=2.0.0)", "pymysql (>=1.0.2)"] +output-formatting = ["jinja2 (>=3.1.2)", "tabulate (>=0.9.0)"] +parquet = ["pyarrow (>=10.0.1)"] +performance = ["bottleneck (>=1.3.6)", "numba (>=0.56.4)", "numexpr (>=2.8.4)"] +plot = ["matplotlib (>=3.6.3)"] +postgresql = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "psycopg2 (>=2.9.6)"] +pyarrow = ["pyarrow (>=10.0.1)"] +spss = ["pyreadstat (>=1.2.0)"] +sql-other = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)"] +test = ["hypothesis (>=6.46.1)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)"] +xml = ["lxml (>=4.9.2)"] + +[[package]] +name = "pathspec" +version = "0.12.1" +description = "Utility library for gitignore style pattern matching of file paths." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, + {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, +] + +[[package]] +name = "platformdirs" +version = "4.2.2" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." +optional = false +python-versions = ">=3.8" +files = [ + {file = "platformdirs-4.2.2-py3-none-any.whl", hash = "sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee"}, + {file = "platformdirs-4.2.2.tar.gz", hash = "sha256:38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3"}, +] + +[package.extras] +docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"] +type = ["mypy (>=1.8)"] + +[[package]] +name = "pluggy" +version = "1.5.0" +description = "plugin and hook calling mechanisms for python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, + {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, +] + +[package.extras] +dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] + +[[package]] +name = "pre-commit" +version = "3.7.1" +description = "A framework for managing and maintaining multi-language pre-commit hooks." +optional = false +python-versions = ">=3.9" +files = [ + {file = "pre_commit-3.7.1-py2.py3-none-any.whl", hash = "sha256:fae36fd1d7ad7d6a5a1c0b0d5adb2ed1a3bda5a21bf6c3e5372073d7a11cd4c5"}, + {file = "pre_commit-3.7.1.tar.gz", hash = "sha256:8ca3ad567bc78a4972a3f1a477e94a79d4597e8140a6e0b651c5e33899c3654a"}, +] + +[package.dependencies] +cfgv = ">=2.0.0" +identify = ">=1.0.0" +nodeenv = ">=0.11.1" +pyyaml = ">=5.1" +virtualenv = ">=20.10.0" + +[[package]] +name = "pydantic" +version = "2.8.0" +description = "Data validation using Python type hints" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pydantic-2.8.0-py3-none-any.whl", hash = "sha256:ead4f3a1e92386a734ca1411cb25d94147cf8778ed5be6b56749047676d6364e"}, + {file = "pydantic-2.8.0.tar.gz", hash = "sha256:d970ffb9d030b710795878940bd0489842c638e7252fc4a19c3ae2f7da4d6141"}, +] + +[package.dependencies] +annotated-types = ">=0.4.0" +pydantic-core = "2.20.0" +typing-extensions = [ + {version = ">=4.12.2", markers = "python_version >= \"3.13\""}, + {version = ">=4.6.1", markers = "python_version < \"3.13\""}, +] + +[package.extras] +email = ["email-validator (>=2.0.0)"] + +[[package]] +name = "pydantic-core" +version = "2.20.0" +description = "Core functionality for Pydantic validation and serialization" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pydantic_core-2.20.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:e9dcd7fb34f7bfb239b5fa420033642fff0ad676b765559c3737b91f664d4fa9"}, + {file = "pydantic_core-2.20.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:649a764d9b0da29816889424697b2a3746963ad36d3e0968784ceed6e40c6355"}, + {file = "pydantic_core-2.20.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7701df088d0b05f3460f7ba15aec81ac8b0fb5690367dfd072a6c38cf5b7fdb5"}, + {file = "pydantic_core-2.20.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ab760f17c3e792225cdaef31ca23c0aea45c14ce80d8eff62503f86a5ab76bff"}, + {file = "pydantic_core-2.20.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cb1ad5b4d73cde784cf64580166568074f5ccd2548d765e690546cff3d80937d"}, + {file = "pydantic_core-2.20.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b81ec2efc04fc1dbf400647d4357d64fb25543bae38d2d19787d69360aad21c9"}, + {file = "pydantic_core-2.20.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c4a9732a5cad764ba37f3aa873dccb41b584f69c347a57323eda0930deec8e10"}, + {file = "pydantic_core-2.20.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6dc85b9e10cc21d9c1055f15684f76fa4facadddcb6cd63abab702eb93c98943"}, + {file = "pydantic_core-2.20.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:21d9f7e24f63fdc7118e6cc49defaab8c1d27570782f7e5256169d77498cf7c7"}, + {file = "pydantic_core-2.20.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8b315685832ab9287e6124b5d74fc12dda31e6421d7f6b08525791452844bc2d"}, + {file = "pydantic_core-2.20.0-cp310-none-win32.whl", hash = "sha256:c3dc8ec8b87c7ad534c75b8855168a08a7036fdb9deeeed5705ba9410721c84d"}, + {file = "pydantic_core-2.20.0-cp310-none-win_amd64.whl", hash = "sha256:85770b4b37bb36ef93a6122601795231225641003e0318d23c6233c59b424279"}, + {file = "pydantic_core-2.20.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:58e251bb5a5998f7226dc90b0b753eeffa720bd66664eba51927c2a7a2d5f32c"}, + {file = "pydantic_core-2.20.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:78d584caac52c24240ef9ecd75de64c760bbd0e20dbf6973631815e3ef16ef8b"}, + {file = "pydantic_core-2.20.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5084ec9721f82bef5ff7c4d1ee65e1626783abb585f8c0993833490b63fe1792"}, + {file = "pydantic_core-2.20.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6d0f52684868db7c218437d260e14d37948b094493f2646f22d3dda7229bbe3f"}, + {file = "pydantic_core-2.20.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1def125d59a87fe451212a72ab9ed34c118ff771e5473fef4f2f95d8ede26d75"}, + {file = "pydantic_core-2.20.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b34480fd6778ab356abf1e9086a4ced95002a1e195e8d2fd182b0def9d944d11"}, + {file = "pydantic_core-2.20.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d42669d319db366cb567c3b444f43caa7ffb779bf9530692c6f244fc635a41eb"}, + {file = "pydantic_core-2.20.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:53b06aea7a48919a254b32107647be9128c066aaa6ee6d5d08222325f25ef175"}, + {file = "pydantic_core-2.20.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1f038156b696a1c39d763b2080aeefa87ddb4162c10aa9fabfefffc3dd8180fa"}, + {file = "pydantic_core-2.20.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3f0f3a4a23717280a5ee3ac4fb1f81d6fde604c9ec5100f7f6f987716bb8c137"}, + {file = "pydantic_core-2.20.0-cp311-none-win32.whl", hash = "sha256:316fe7c3fec017affd916a0c83d6f1ec697cbbbdf1124769fa73328e7907cc2e"}, + {file = "pydantic_core-2.20.0-cp311-none-win_amd64.whl", hash = "sha256:2d06a7fa437f93782e3f32d739c3ec189f82fca74336c08255f9e20cea1ed378"}, + {file = "pydantic_core-2.20.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:d6f8c49657f3eb7720ed4c9b26624063da14937fc94d1812f1e04a2204db3e17"}, + {file = "pydantic_core-2.20.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ad1bd2f377f56fec11d5cfd0977c30061cd19f4fa199bf138b200ec0d5e27eeb"}, + {file = "pydantic_core-2.20.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed741183719a5271f97d93bbcc45ed64619fa38068aaa6e90027d1d17e30dc8d"}, + {file = "pydantic_core-2.20.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d82e5ed3a05f2dcb89c6ead2fd0dbff7ac09bc02c1b4028ece2d3a3854d049ce"}, + {file = "pydantic_core-2.20.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b2ba34a099576234671f2e4274e5bc6813b22e28778c216d680eabd0db3f7dad"}, + {file = "pydantic_core-2.20.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:879ae6bb08a063b3e1b7ac8c860096d8fd6b48dd9b2690b7f2738b8c835e744b"}, + {file = "pydantic_core-2.20.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b0eefc7633a04c0694340aad91fbfd1986fe1a1e0c63a22793ba40a18fcbdc8"}, + {file = "pydantic_core-2.20.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:73deadd6fd8a23e2f40b412b3ac617a112143c8989a4fe265050fd91ba5c0608"}, + {file = "pydantic_core-2.20.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:35681445dc85446fb105943d81ae7569aa7e89de80d1ca4ac3229e05c311bdb1"}, + {file = "pydantic_core-2.20.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:0f6dd3612a3b9f91f2e63924ea18a4476656c6d01843ca20a4c09e00422195af"}, + {file = "pydantic_core-2.20.0-cp312-none-win32.whl", hash = "sha256:7e37b6bb6e90c2b8412b06373c6978d9d81e7199a40e24a6ef480e8acdeaf918"}, + {file = "pydantic_core-2.20.0-cp312-none-win_amd64.whl", hash = "sha256:7d4df13d1c55e84351fab51383520b84f490740a9f1fec905362aa64590b7a5d"}, + {file = "pydantic_core-2.20.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:d43e7ab3b65e4dc35a7612cfff7b0fd62dce5bc11a7cd198310b57f39847fd6c"}, + {file = "pydantic_core-2.20.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7b6a24d7b5893392f2b8e3b7a0031ae3b14c6c1942a4615f0d8794fdeeefb08b"}, + {file = "pydantic_core-2.20.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b2f13c3e955a087c3ec86f97661d9f72a76e221281b2262956af381224cfc243"}, + {file = "pydantic_core-2.20.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:72432fd6e868c8d0a6849869e004b8bcae233a3c56383954c228316694920b38"}, + {file = "pydantic_core-2.20.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d70a8ff2d4953afb4cbe6211f17268ad29c0b47e73d3372f40e7775904bc28fc"}, + {file = "pydantic_core-2.20.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e49524917b8d3c2f42cd0d2df61178e08e50f5f029f9af1f402b3ee64574392"}, + {file = "pydantic_core-2.20.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a4f0f71653b1c1bad0350bc0b4cc057ab87b438ff18fa6392533811ebd01439c"}, + {file = "pydantic_core-2.20.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:16197e6f4fdecb9892ed2436e507e44f0a1aa2cff3b9306d1c879ea2f9200997"}, + {file = "pydantic_core-2.20.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:763602504bf640b3ded3bba3f8ed8a1cc2fc6a87b8d55c1c5689f428c49c947e"}, + {file = "pydantic_core-2.20.0-cp313-none-win32.whl", hash = "sha256:a3f243f318bd9523277fa123b3163f4c005a3e8619d4b867064de02f287a564d"}, + {file = "pydantic_core-2.20.0-cp313-none-win_amd64.whl", hash = "sha256:03aceaf6a5adaad3bec2233edc5a7905026553916615888e53154807e404545c"}, + {file = "pydantic_core-2.20.0-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d6f2d8b8da1f03f577243b07bbdd3412eee3d37d1f2fd71d1513cbc76a8c1239"}, + {file = "pydantic_core-2.20.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a272785a226869416c6b3c1b7e450506152d3844207331f02f27173562c917e0"}, + {file = "pydantic_core-2.20.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:efbb412d55a4ffe73963fed95c09ccb83647ec63b711c4b3752be10a56f0090b"}, + {file = "pydantic_core-2.20.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1e4f46189d8740561b43655263a41aac75ff0388febcb2c9ec4f1b60a0ec12f3"}, + {file = "pydantic_core-2.20.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:87d3df115f4a3c8c5e4d5acf067d399c6466d7e604fc9ee9acbe6f0c88a0c3cf"}, + {file = "pydantic_core-2.20.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a340d2bdebe819d08f605e9705ed551c3feb97e4fd71822d7147c1e4bdbb9508"}, + {file = "pydantic_core-2.20.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:616b9c2f882393d422ba11b40e72382fe975e806ad693095e9a3b67c59ea6150"}, + {file = "pydantic_core-2.20.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:25c46bb2ff6084859bbcfdf4f1a63004b98e88b6d04053e8bf324e115398e9e7"}, + {file = "pydantic_core-2.20.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:23425eccef8f2c342f78d3a238c824623836c6c874d93c726673dbf7e56c78c0"}, + {file = "pydantic_core-2.20.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:52527e8f223ba29608d999d65b204676398009725007c9336651c2ec2d93cffc"}, + {file = "pydantic_core-2.20.0-cp38-none-win32.whl", hash = "sha256:1c3c5b7f70dd19a6845292b0775295ea81c61540f68671ae06bfe4421b3222c2"}, + {file = "pydantic_core-2.20.0-cp38-none-win_amd64.whl", hash = "sha256:8093473d7b9e908af1cef30025609afc8f5fd2a16ff07f97440fd911421e4432"}, + {file = "pydantic_core-2.20.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:ee7785938e407418795e4399b2bf5b5f3cf6cf728077a7f26973220d58d885cf"}, + {file = "pydantic_core-2.20.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0e75794883d635071cf6b4ed2a5d7a1e50672ab7a051454c76446ef1ebcdcc91"}, + {file = "pydantic_core-2.20.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:344e352c96e53b4f56b53d24728217c69399b8129c16789f70236083c6ceb2ac"}, + {file = "pydantic_core-2.20.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:978d4123ad1e605daf1ba5e01d4f235bcf7b6e340ef07e7122e8e9cfe3eb61ab"}, + {file = "pydantic_core-2.20.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3c05eaf6c863781eb834ab41f5963604ab92855822a2062897958089d1335dad"}, + {file = "pydantic_core-2.20.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bc7e43b4a528ffca8c9151b6a2ca34482c2fdc05e6aa24a84b7f475c896fc51d"}, + {file = "pydantic_core-2.20.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:658287a29351166510ebbe0a75c373600cc4367a3d9337b964dada8d38bcc0f4"}, + {file = "pydantic_core-2.20.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1dacf660d6de692fe351e8c806e7efccf09ee5184865893afbe8e59be4920b4a"}, + {file = "pydantic_core-2.20.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:3e147fc6e27b9a487320d78515c5f29798b539179f7777018cedf51b7749e4f4"}, + {file = "pydantic_core-2.20.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c867230d715a3dd1d962c8d9bef0d3168994ed663e21bf748b6e3a529a129aab"}, + {file = "pydantic_core-2.20.0-cp39-none-win32.whl", hash = "sha256:22b813baf0dbf612752d8143a2dbf8e33ccb850656b7850e009bad2e101fc377"}, + {file = "pydantic_core-2.20.0-cp39-none-win_amd64.whl", hash = "sha256:3a7235b46c1bbe201f09b6f0f5e6c36b16bad3d0532a10493742f91fbdc8035f"}, + {file = "pydantic_core-2.20.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:cafde15a6f7feaec2f570646e2ffc5b73412295d29134a29067e70740ec6ee20"}, + {file = "pydantic_core-2.20.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:2aec8eeea0b08fd6bc2213d8e86811a07491849fd3d79955b62d83e32fa2ad5f"}, + {file = "pydantic_core-2.20.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:840200827984f1c4e114008abc2f5ede362d6e11ed0b5931681884dd41852ff1"}, + {file = "pydantic_core-2.20.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8ea1d8b7df522e5ced34993c423c3bf3735c53df8b2a15688a2f03a7d678800"}, + {file = "pydantic_core-2.20.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d5b8376a867047bf08910573deb95d3c8dfb976eb014ee24f3b5a61ccc5bee1b"}, + {file = "pydantic_core-2.20.0-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:d08264b4460326cefacc179fc1411304d5af388a79910832835e6f641512358b"}, + {file = "pydantic_core-2.20.0-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:7a3639011c2e8a9628466f616ed7fb413f30032b891898e10895a0a8b5857d6c"}, + {file = "pydantic_core-2.20.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:05e83ce2f7eba29e627dd8066aa6c4c0269b2d4f889c0eba157233a353053cea"}, + {file = "pydantic_core-2.20.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:603a843fea76a595c8f661cd4da4d2281dff1e38c4a836a928eac1a2f8fe88e4"}, + {file = "pydantic_core-2.20.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:ac76f30d5d3454f4c28826d891fe74d25121a346c69523c9810ebba43f3b1cec"}, + {file = "pydantic_core-2.20.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22e3b1d4b1b3f6082849f9b28427ef147a5b46a6132a3dbaf9ca1baa40c88609"}, + {file = "pydantic_core-2.20.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2761f71faed820e25ec62eacba670d1b5c2709bb131a19fcdbfbb09884593e5a"}, + {file = "pydantic_core-2.20.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a0586cddbf4380e24569b8a05f234e7305717cc8323f50114dfb2051fcbce2a3"}, + {file = "pydantic_core-2.20.0-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:b8c46a8cf53e849eea7090f331ae2202cd0f1ceb090b00f5902c423bd1e11805"}, + {file = "pydantic_core-2.20.0-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:b4a085bd04af7245e140d1b95619fe8abb445a3d7fdf219b3f80c940853268ef"}, + {file = "pydantic_core-2.20.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:116b326ac82c8b315e7348390f6d30bcfe6e688a7d3f1de50ff7bcc2042a23c2"}, + {file = "pydantic_core-2.20.0.tar.gz", hash = "sha256:366be8e64e0cb63d87cf79b4e1765c0703dd6313c729b22e7b9e378db6b96877"}, +] + +[package.dependencies] +typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" + +[[package]] +name = "pyogrio" +version = "0.9.0" +description = "Vectorized spatial vector file format I/O using GDAL/OGR" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pyogrio-0.9.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:1a495ca4fb77c69595747dd688f8f17bb7d2ea9cd86603aa71c7fc98cc8b4174"}, + {file = "pyogrio-0.9.0-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:6dc94a67163218581c7df275223488ac9b31dc582ccd756da607c3338908566c"}, + {file = "pyogrio-0.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e38c3c6d37cf2cc969407e4d051dcb507cfd948eb26c7b0840c4f7d7d4a71bd4"}, + {file = "pyogrio-0.9.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:f47c9b6818cc0f420015b672d5dcc488530a5ee63e5ba35a184957b21ea3922a"}, + {file = "pyogrio-0.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:fb04bd80964428491951766452f0071b0bc37c7d38c45ef02502dbd83e5d74a0"}, + {file = "pyogrio-0.9.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:f5d80eb846be4fc4e642cbedc1ed0c143e8d241653382ecc76a7620bbd2a5c3a"}, + {file = "pyogrio-0.9.0-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:2f2ec57ab74785db9c2bf47c0a6731e5175595a13f8253f06fa84136adb310a9"}, + {file = "pyogrio-0.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a289584da6df7ca318947301fe0ba9177e7f863f63110e087c80ac5f3658de8"}, + {file = "pyogrio-0.9.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:13642608a1cd67797ae8b5d792b0518d8ef3eb76506c8232ab5eaa1ea1159dff"}, + {file = "pyogrio-0.9.0-cp311-cp311-win_amd64.whl", hash = "sha256:9440466c0211ac81f3417f274da5903f15546b486f76b2f290e74a56aaf0e737"}, + {file = "pyogrio-0.9.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:2e98913fa183f7597c609e774820a149e9329fd2a0f8d33978252fbd00ae87e6"}, + {file = "pyogrio-0.9.0-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:f8bf193269ea9d347ac3ddada960a59f1ab2e4a5c009be95dc70e6505346b2fc"}, + {file = "pyogrio-0.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3f964002d445521ad5b8e732a6b5ef0e2d2be7fe566768e5075c1d71398da64a"}, + {file = "pyogrio-0.9.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:083351b258b3e08b6c6085dac560bd321b68de5cb4a66229095da68d5f3d696b"}, + {file = "pyogrio-0.9.0-cp312-cp312-win_amd64.whl", hash = "sha256:796e4f6a4e769b2eb6fea9a10546ea4bdee16182d1e29802b4d6349363c3c1d7"}, + {file = "pyogrio-0.9.0-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:7fcafed24371fe6e23bcf5abebbb29269f8d79915f1dd818ac85453657ea714a"}, + {file = "pyogrio-0.9.0-cp38-cp38-macosx_12_0_x86_64.whl", hash = "sha256:30cbeeaedb9bced7012487e7438919aa0c7dfba18ac3d4315182b46eb3139b9d"}, + {file = "pyogrio-0.9.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4da0b9deb380bd9a200fee13182c4f95b02b4c554c923e2e0032f32aaf1439ed"}, + {file = "pyogrio-0.9.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:4e0f90a6c3771ee1f1fea857778b4b6a1b64000d851b819f435f9091b3c38c60"}, + {file = "pyogrio-0.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:959022f3ad04053f8072dc9a2ad110c46edd9e4f92352061ba835fc91df3ca96"}, + {file = "pyogrio-0.9.0-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:2829615cf58b1b24a9f96fea42abedaa1a800dd351c67374cc2f6341138608f3"}, + {file = "pyogrio-0.9.0-cp39-cp39-macosx_12_0_x86_64.whl", hash = "sha256:17420febc17651876d5140b54b24749aa751d482b5f9ef6267b8053e6e962876"}, + {file = "pyogrio-0.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a2fcaa269031dbbc8ebd91243c6452c5d267d6df939c008ab7533413c9cf92d"}, + {file = "pyogrio-0.9.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:019731a856a9abfe909e86f50eb13f8362f6742337caf757c54b7c8acfe75b89"}, + {file = "pyogrio-0.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:d668cb10f2bf6ccd7c402f91e8b06290722dd09dbe265ae95b2c13db29ebeba0"}, + {file = "pyogrio-0.9.0.tar.gz", hash = "sha256:6a6fa2e8cf95b3d4a7c0fac48bce6e5037579e28d3eb33b53349d6e11f15e5a8"}, +] + +[package.dependencies] +certifi = "*" +numpy = "*" +packaging = "*" + +[package.extras] +benchmark = ["pytest-benchmark"] +dev = ["Cython"] +geopandas = ["geopandas"] +test = ["pytest", "pytest-cov"] + +[[package]] +name = "pyproj" +version = "3.6.1" +description = "Python interface to PROJ (cartographic projections and coordinate transformations library)" +optional = false +python-versions = ">=3.9" +files = [ + {file = "pyproj-3.6.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ab7aa4d9ff3c3acf60d4b285ccec134167a948df02347585fdd934ebad8811b4"}, + {file = "pyproj-3.6.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4bc0472302919e59114aa140fd7213c2370d848a7249d09704f10f5b062031fe"}, + {file = "pyproj-3.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5279586013b8d6582e22b6f9e30c49796966770389a9d5b85e25a4223286cd3f"}, + {file = "pyproj-3.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80fafd1f3eb421694857f254a9bdbacd1eb22fc6c24ca74b136679f376f97d35"}, + {file = "pyproj-3.6.1-cp310-cp310-win32.whl", hash = "sha256:c41e80ddee130450dcb8829af7118f1ab69eaf8169c4bf0ee8d52b72f098dc2f"}, + {file = "pyproj-3.6.1-cp310-cp310-win_amd64.whl", hash = "sha256:db3aedd458e7f7f21d8176f0a1d924f1ae06d725228302b872885a1c34f3119e"}, + {file = "pyproj-3.6.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ebfbdbd0936e178091309f6cd4fcb4decd9eab12aa513cdd9add89efa3ec2882"}, + {file = "pyproj-3.6.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:447db19c7efad70ff161e5e46a54ab9cc2399acebb656b6ccf63e4bc4a04b97a"}, + {file = "pyproj-3.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e7e13c40183884ec7f94eb8e0f622f08f1d5716150b8d7a134de48c6110fee85"}, + {file = "pyproj-3.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65ad699e0c830e2b8565afe42bd58cc972b47d829b2e0e48ad9638386d994915"}, + {file = "pyproj-3.6.1-cp311-cp311-win32.whl", hash = "sha256:8b8acc31fb8702c54625f4d5a2a6543557bec3c28a0ef638778b7ab1d1772132"}, + {file = "pyproj-3.6.1-cp311-cp311-win_amd64.whl", hash = "sha256:38a3361941eb72b82bd9a18f60c78b0df8408416f9340521df442cebfc4306e2"}, + {file = "pyproj-3.6.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:1e9fbaf920f0f9b4ee62aab832be3ae3968f33f24e2e3f7fbb8c6728ef1d9746"}, + {file = "pyproj-3.6.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6d227a865356f225591b6732430b1d1781e946893789a609bb34f59d09b8b0f8"}, + {file = "pyproj-3.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:83039e5ae04e5afc974f7d25ee0870a80a6bd6b7957c3aca5613ccbe0d3e72bf"}, + {file = "pyproj-3.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fffb059ba3bced6f6725961ba758649261d85ed6ce670d3e3b0a26e81cf1aa8d"}, + {file = "pyproj-3.6.1-cp312-cp312-win32.whl", hash = "sha256:2d6ff73cc6dbbce3766b6c0bce70ce070193105d8de17aa2470009463682a8eb"}, + {file = "pyproj-3.6.1-cp312-cp312-win_amd64.whl", hash = "sha256:7a27151ddad8e1439ba70c9b4b2b617b290c39395fa9ddb7411ebb0eb86d6fb0"}, + {file = "pyproj-3.6.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4ba1f9b03d04d8cab24d6375609070580a26ce76eaed54631f03bab00a9c737b"}, + {file = "pyproj-3.6.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:18faa54a3ca475bfe6255156f2f2874e9a1c8917b0004eee9f664b86ccc513d3"}, + {file = "pyproj-3.6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fd43bd9a9b9239805f406fd82ba6b106bf4838d9ef37c167d3ed70383943ade1"}, + {file = "pyproj-3.6.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:50100b2726a3ca946906cbaa789dd0749f213abf0cbb877e6de72ca7aa50e1ae"}, + {file = "pyproj-3.6.1-cp39-cp39-win32.whl", hash = "sha256:9274880263256f6292ff644ca92c46d96aa7e57a75c6df3f11d636ce845a1877"}, + {file = "pyproj-3.6.1-cp39-cp39-win_amd64.whl", hash = "sha256:36b64c2cb6ea1cc091f329c5bd34f9c01bb5da8c8e4492c709bda6a09f96808f"}, + {file = "pyproj-3.6.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:fd93c1a0c6c4aedc77c0fe275a9f2aba4d59b8acf88cebfc19fe3c430cfabf4f"}, + {file = "pyproj-3.6.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6420ea8e7d2a88cb148b124429fba8cd2e0fae700a2d96eab7083c0928a85110"}, + {file = "pyproj-3.6.1.tar.gz", hash = "sha256:44aa7c704c2b7d8fb3d483bbf75af6cb2350d30a63b144279a09b75fead501bf"}, +] + +[package.dependencies] +certifi = "*" + +[[package]] +name = "pytest" +version = "7.4.4" +description = "pytest: simple powerful testing with Python" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8"}, + {file = "pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "sys_platform == \"win32\""} +exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} +iniconfig = "*" +packaging = "*" +pluggy = ">=0.12,<2.0" +tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} + +[package.extras] +testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +description = "Extensions to the standard Python datetime module" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +files = [ + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, +] + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "pytz" +version = "2024.1" +description = "World timezone definitions, modern and historical" +optional = false +python-versions = "*" +files = [ + {file = "pytz-2024.1-py2.py3-none-any.whl", hash = "sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319"}, + {file = "pytz-2024.1.tar.gz", hash = "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812"}, +] + +[[package]] +name = "pyyaml" +version = "6.0.1" +description = "YAML parser and emitter for Python" +optional = false +python-versions = ">=3.6" +files = [ + {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, + {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, + {file = "PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"}, + {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, + {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, + {file = "PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"}, + {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, + {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, + {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, + {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, + {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"}, + {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd"}, + {file = "PyYAML-6.0.1-cp36-cp36m-win32.whl", hash = "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585"}, + {file = "PyYAML-6.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa"}, + {file = "PyYAML-6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c"}, + {file = "PyYAML-6.0.1-cp37-cp37m-win32.whl", hash = "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba"}, + {file = "PyYAML-6.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867"}, + {file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, + {file = "PyYAML-6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6"}, + {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, + {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, + {file = "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"}, + {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, + {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, + {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, +] + +[[package]] +name = "requests" +version = "2.32.3" +description = "Python HTTP for Humans." +optional = false +python-versions = ">=3.8" +files = [ + {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, + {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, +] + +[package.dependencies] +certifi = ">=2017.4.17" +charset-normalizer = ">=2,<4" +idna = ">=2.5,<4" +urllib3 = ">=1.21.1,<3" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] + +[[package]] +name = "ruff" +version = "0.0.292" +description = "An extremely fast Python linter, written in Rust." +optional = false +python-versions = ">=3.7" +files = [ + {file = "ruff-0.0.292-py3-none-macosx_10_7_x86_64.whl", hash = "sha256:02f29db018c9d474270c704e6c6b13b18ed0ecac82761e4fcf0faa3728430c96"}, + {file = "ruff-0.0.292-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:69654e564342f507edfa09ee6897883ca76e331d4bbc3676d8a8403838e9fade"}, + {file = "ruff-0.0.292-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c3c91859a9b845c33778f11902e7b26440d64b9d5110edd4e4fa1726c41e0a4"}, + {file = "ruff-0.0.292-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f4476f1243af2d8c29da5f235c13dca52177117935e1f9393f9d90f9833f69e4"}, + {file = "ruff-0.0.292-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:be8eb50eaf8648070b8e58ece8e69c9322d34afe367eec4210fdee9a555e4ca7"}, + {file = "ruff-0.0.292-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:9889bac18a0c07018aac75ef6c1e6511d8411724d67cb879103b01758e110a81"}, + {file = "ruff-0.0.292-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6bdfabd4334684a4418b99b3118793f2c13bb67bf1540a769d7816410402a205"}, + {file = "ruff-0.0.292-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aa7c77c53bfcd75dbcd4d1f42d6cabf2485d2e1ee0678da850f08e1ab13081a8"}, + {file = "ruff-0.0.292-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e087b24d0d849c5c81516ec740bf4fd48bf363cfb104545464e0fca749b6af9"}, + {file = "ruff-0.0.292-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:f160b5ec26be32362d0774964e218f3fcf0a7da299f7e220ef45ae9e3e67101a"}, + {file = "ruff-0.0.292-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:ac153eee6dd4444501c4bb92bff866491d4bfb01ce26dd2fff7ca472c8df9ad0"}, + {file = "ruff-0.0.292-py3-none-musllinux_1_2_i686.whl", hash = "sha256:87616771e72820800b8faea82edd858324b29bb99a920d6aa3d3949dd3f88fb0"}, + {file = "ruff-0.0.292-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:b76deb3bdbea2ef97db286cf953488745dd6424c122d275f05836c53f62d4016"}, + {file = "ruff-0.0.292-py3-none-win32.whl", hash = "sha256:e854b05408f7a8033a027e4b1c7f9889563dd2aca545d13d06711e5c39c3d003"}, + {file = "ruff-0.0.292-py3-none-win_amd64.whl", hash = "sha256:f27282bedfd04d4c3492e5c3398360c9d86a295be00eccc63914438b4ac8a83c"}, + {file = "ruff-0.0.292-py3-none-win_arm64.whl", hash = "sha256:7f67a69c8f12fbc8daf6ae6d36705037bde315abf8b82b6e1f4c9e74eb750f68"}, + {file = "ruff-0.0.292.tar.gz", hash = "sha256:1093449e37dd1e9b813798f6ad70932b57cf614e5c2b5c51005bf67d55db33ac"}, +] + +[[package]] +name = "s3transfer" +version = "0.10.2" +description = "An Amazon S3 Transfer Manager" +optional = false +python-versions = ">=3.8" +files = [ + {file = "s3transfer-0.10.2-py3-none-any.whl", hash = "sha256:eca1c20de70a39daee580aef4986996620f365c4e0fda6a86100231d62f1bf69"}, + {file = "s3transfer-0.10.2.tar.gz", hash = "sha256:0711534e9356d3cc692fdde846b4a1e4b0cb6519971860796e6bc4c7aea00ef6"}, +] + +[package.dependencies] +botocore = ">=1.33.2,<2.0a.0" + +[package.extras] +crt = ["botocore[crt] (>=1.33.2,<2.0a.0)"] + +[[package]] +name = "shapely" +version = "2.0.4" +description = "Manipulation and analysis of geometric objects" +optional = false +python-versions = ">=3.7" +files = [ + {file = "shapely-2.0.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:011b77153906030b795791f2fdfa2d68f1a8d7e40bce78b029782ade3afe4f2f"}, + {file = "shapely-2.0.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9831816a5d34d5170aa9ed32a64982c3d6f4332e7ecfe62dc97767e163cb0b17"}, + {file = "shapely-2.0.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5c4849916f71dc44e19ed370421518c0d86cf73b26e8656192fcfcda08218fbd"}, + {file = "shapely-2.0.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:841f93a0e31e4c64d62ea570d81c35de0f6cea224568b2430d832967536308e6"}, + {file = "shapely-2.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b4431f522b277c79c34b65da128029a9955e4481462cbf7ebec23aab61fc58"}, + {file = "shapely-2.0.4-cp310-cp310-win32.whl", hash = "sha256:92a41d936f7d6743f343be265ace93b7c57f5b231e21b9605716f5a47c2879e7"}, + {file = "shapely-2.0.4-cp310-cp310-win_amd64.whl", hash = "sha256:30982f79f21bb0ff7d7d4a4e531e3fcaa39b778584c2ce81a147f95be1cd58c9"}, + {file = "shapely-2.0.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:de0205cb21ad5ddaef607cda9a3191eadd1e7a62a756ea3a356369675230ac35"}, + {file = "shapely-2.0.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7d56ce3e2a6a556b59a288771cf9d091470116867e578bebced8bfc4147fbfd7"}, + {file = "shapely-2.0.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:58b0ecc505bbe49a99551eea3f2e8a9b3b24b3edd2a4de1ac0dc17bc75c9ec07"}, + {file = "shapely-2.0.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:790a168a808bd00ee42786b8ba883307c0e3684ebb292e0e20009588c426da47"}, + {file = "shapely-2.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4310b5494271e18580d61022c0857eb85d30510d88606fa3b8314790df7f367d"}, + {file = "shapely-2.0.4-cp311-cp311-win32.whl", hash = "sha256:63f3a80daf4f867bd80f5c97fbe03314348ac1b3b70fb1c0ad255a69e3749879"}, + {file = "shapely-2.0.4-cp311-cp311-win_amd64.whl", hash = "sha256:c52ed79f683f721b69a10fb9e3d940a468203f5054927215586c5d49a072de8d"}, + {file = "shapely-2.0.4-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:5bbd974193e2cc274312da16b189b38f5f128410f3377721cadb76b1e8ca5328"}, + {file = "shapely-2.0.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:41388321a73ba1a84edd90d86ecc8bfed55e6a1e51882eafb019f45895ec0f65"}, + {file = "shapely-2.0.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0776c92d584f72f1e584d2e43cfc5542c2f3dd19d53f70df0900fda643f4bae6"}, + {file = "shapely-2.0.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c75c98380b1ede1cae9a252c6dc247e6279403fae38c77060a5e6186c95073ac"}, + {file = "shapely-2.0.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3e700abf4a37b7b8b90532fa6ed5c38a9bfc777098bc9fbae5ec8e618ac8f30"}, + {file = "shapely-2.0.4-cp312-cp312-win32.whl", hash = "sha256:4f2ab0faf8188b9f99e6a273b24b97662194160cc8ca17cf9d1fb6f18d7fb93f"}, + {file = "shapely-2.0.4-cp312-cp312-win_amd64.whl", hash = "sha256:03152442d311a5e85ac73b39680dd64a9892fa42bb08fd83b3bab4fe6999bfa0"}, + {file = "shapely-2.0.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:994c244e004bc3cfbea96257b883c90a86e8cbd76e069718eb4c6b222a56f78b"}, + {file = "shapely-2.0.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:05ffd6491e9e8958b742b0e2e7c346635033d0a5f1a0ea083547fcc854e5d5cf"}, + {file = "shapely-2.0.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fbdc1140a7d08faa748256438291394967aa54b40009f54e8d9825e75ef6113"}, + {file = "shapely-2.0.4-cp37-cp37m-win32.whl", hash = "sha256:5af4cd0d8cf2912bd95f33586600cac9c4b7c5053a036422b97cfe4728d2eb53"}, + {file = "shapely-2.0.4-cp37-cp37m-win_amd64.whl", hash = "sha256:464157509ce4efa5ff285c646a38b49f8c5ef8d4b340f722685b09bb033c5ccf"}, + {file = "shapely-2.0.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:489c19152ec1f0e5c5e525356bcbf7e532f311bff630c9b6bc2db6f04da6a8b9"}, + {file = "shapely-2.0.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b79bbd648664aa6f44ef018474ff958b6b296fed5c2d42db60078de3cffbc8aa"}, + {file = "shapely-2.0.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:674d7baf0015a6037d5758496d550fc1946f34bfc89c1bf247cabdc415d7747e"}, + {file = "shapely-2.0.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6cd4ccecc5ea5abd06deeaab52fcdba372f649728050c6143cc405ee0c166679"}, + {file = "shapely-2.0.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fb5cdcbbe3080181498931b52a91a21a781a35dcb859da741c0345c6402bf00c"}, + {file = "shapely-2.0.4-cp38-cp38-win32.whl", hash = "sha256:55a38dcd1cee2f298d8c2ebc60fc7d39f3b4535684a1e9e2f39a80ae88b0cea7"}, + {file = "shapely-2.0.4-cp38-cp38-win_amd64.whl", hash = "sha256:ec555c9d0db12d7fd777ba3f8b75044c73e576c720a851667432fabb7057da6c"}, + {file = "shapely-2.0.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3f9103abd1678cb1b5f7e8e1af565a652e036844166c91ec031eeb25c5ca8af0"}, + {file = "shapely-2.0.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:263bcf0c24d7a57c80991e64ab57cba7a3906e31d2e21b455f493d4aab534aaa"}, + {file = "shapely-2.0.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ddf4a9bfaac643e62702ed662afc36f6abed2a88a21270e891038f9a19bc08fc"}, + {file = "shapely-2.0.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:485246fcdb93336105c29a5cfbff8a226949db37b7473c89caa26c9bae52a242"}, + {file = "shapely-2.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8de4578e838a9409b5b134a18ee820730e507b2d21700c14b71a2b0757396acc"}, + {file = "shapely-2.0.4-cp39-cp39-win32.whl", hash = "sha256:9dab4c98acfb5fb85f5a20548b5c0abe9b163ad3525ee28822ffecb5c40e724c"}, + {file = "shapely-2.0.4-cp39-cp39-win_amd64.whl", hash = "sha256:31c19a668b5a1eadab82ff070b5a260478ac6ddad3a5b62295095174a8d26398"}, + {file = "shapely-2.0.4.tar.gz", hash = "sha256:5dc736127fac70009b8d309a0eeb74f3e08979e530cf7017f2f507ef62e6cfb8"}, +] + +[package.dependencies] +numpy = ">=1.14,<3" + +[package.extras] +docs = ["matplotlib", "numpydoc (==1.1.*)", "sphinx", "sphinx-book-theme", "sphinx-remove-toctrees"] +test = ["pytest", "pytest-cov"] + +[[package]] +name = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] + +[[package]] +name = "sniffio" +version = "1.3.1" +description = "Sniff out which async library your code is running under" +optional = false +python-versions = ">=3.7" +files = [ + {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, + {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, +] + +[[package]] +name = "starlette" +version = "0.27.0" +description = "The little ASGI library that shines." +optional = false +python-versions = ">=3.7" +files = [ + {file = "starlette-0.27.0-py3-none-any.whl", hash = "sha256:918416370e846586541235ccd38a474c08b80443ed31c578a418e2209b3eef91"}, + {file = "starlette-0.27.0.tar.gz", hash = "sha256:6a6b0d042acb8d469a01eba54e9cda6cbd24ac602c4cd016723117d6a7e73b75"}, +] + +[package.dependencies] +anyio = ">=3.4.0,<5" + +[package.extras] +full = ["httpx (>=0.22.0)", "itsdangerous", "jinja2", "python-multipart", "pyyaml"] + +[[package]] +name = "tomli" +version = "2.0.1" +description = "A lil' TOML parser" +optional = false +python-versions = ">=3.7" +files = [ + {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, + {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, +] + +[[package]] +name = "typing-extensions" +version = "4.12.2" +description = "Backported and Experimental Type Hints for Python 3.8+" +optional = false +python-versions = ">=3.8" +files = [ + {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, + {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, +] + +[[package]] +name = "tzdata" +version = "2024.1" +description = "Provider of IANA time zone data" +optional = false +python-versions = ">=2" +files = [ + {file = "tzdata-2024.1-py2.py3-none-any.whl", hash = "sha256:9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252"}, + {file = "tzdata-2024.1.tar.gz", hash = "sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd"}, +] + +[[package]] +name = "urllib3" +version = "2.2.2" +description = "HTTP library with thread-safe connection pooling, file post, and more." +optional = false +python-versions = ">=3.8" +files = [ + {file = "urllib3-2.2.2-py3-none-any.whl", hash = "sha256:a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472"}, + {file = "urllib3-2.2.2.tar.gz", hash = "sha256:dd505485549a7a552833da5e6063639d0d177c04f23bc3864e41e5dc5f612168"}, +] + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +h2 = ["h2 (>=4,<5)"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +name = "uvicorn" +version = "0.23.2" +description = "The lightning-fast ASGI server." +optional = false +python-versions = ">=3.8" +files = [ + {file = "uvicorn-0.23.2-py3-none-any.whl", hash = "sha256:1f9be6558f01239d4fdf22ef8126c39cb1ad0addf76c40e760549d2c2f43ab53"}, + {file = "uvicorn-0.23.2.tar.gz", hash = "sha256:4d3cc12d7727ba72b64d12d3cc7743124074c0a69f7b201512fc50c3e3f1569a"}, +] + +[package.dependencies] +click = ">=7.0" +h11 = ">=0.8" +typing-extensions = {version = ">=4.0", markers = "python_version < \"3.11\""} + +[package.extras] +standard = ["colorama (>=0.4)", "httptools (>=0.5.0)", "python-dotenv (>=0.13)", "pyyaml (>=5.1)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1)", "watchfiles (>=0.13)", "websockets (>=10.4)"] + +[[package]] +name = "virtualenv" +version = "20.26.3" +description = "Virtual Python Environment builder" +optional = false +python-versions = ">=3.7" +files = [ + {file = "virtualenv-20.26.3-py3-none-any.whl", hash = "sha256:8cc4a31139e796e9a7de2cd5cf2489de1217193116a8fd42328f1bd65f434589"}, + {file = "virtualenv-20.26.3.tar.gz", hash = "sha256:4c43a2a236279d9ea36a0d76f98d84bd6ca94ac4e0f4a3b9d46d05e10fea542a"}, +] + +[package.dependencies] +distlib = ">=0.3.7,<1" +filelock = ">=3.12.2,<4" +platformdirs = ">=3.9.1,<5" + +[package.extras] +docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2,!=7.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] +test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"] + +[metadata] +lock-version = "2.0" +python-versions = "^3.10" +content-hash = "8fe4154e87c387421fa80ef8d9df954bc92874fb0c6f7017a9008a2a6ee8bc64" diff --git a/poetry.toml b/poetry.toml new file mode 100644 index 0000000..efa46ec --- /dev/null +++ b/poetry.toml @@ -0,0 +1,2 @@ +[virtualenvs] +in-project = true \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..b9c9ad2 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,102 @@ +[tool.poetry] +name = "pyrorisks" +version = "0.1.0" +description = "Data pre-processing pipelines and models for wildfire forecasting and monitoring" +authors = ["Pyronear "] +license = "Apache-2.0" +readme = "README.md" +packages = [{include = "pyrorisks"}] +classifiers=[ + "Development Status :: 2 - Pre-Alpha", + "Intended Audience :: Developers", + "Intended Audience :: Science/Research", + "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", + "Natural Language :: English", + "Operating System :: OS Independent", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Topic :: Scientific/Engineering", + "Topic :: Scientific/Engineering :: Mathematics", + "Topic :: Scientific/Engineering :: Artificial Intelligence", + "Topic :: Software Development", + "Topic :: Software Development :: Libraries", + "Topic :: Software Development :: Libraries :: Python Modules", +] +keywords=["data science", "time series", "machine learning"] + + +[tool.poetry.dependencies] +python = "^3.10" +requests = "^2.31.0" +geopandas = "1.0.1" +boto3 = "^1.28.62" + + + +[tool.poetry.group.dev.dependencies] +pytest = "^7.4.2" +black = "^23.9.1" +coverage = "^7.3.2" +pre-commit = "^3.4.0" +mypy = "^1.6.0" +ruff = "^0.0.292" + + +[tool.poetry.group.app.dependencies] +fastapi = "^0.103.2" +uvicorn = "^0.23.2" + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api" + +[tool.ruff] +ignore = [ + "F401", # line too long, handled by black + "E402", # do not perform function calls in argument defaults + "E265", # raise from + "F403", # too complex + "F821", # list comprehension to list() + "W605", # list comprehension to list() +] +exclude = [".git", "venv", "docs", "build"] +line-length = 120 +target-version = "py39" +preview = true + +[tool.mypy] +python_version = "3.10" +mypy_path = "src/" +files = ["pyro_risks/*.py", "app/*.py"] +show_error_codes = true +pretty = true + +[[tool.mypy.overrides]] +module = [ + "dotenv", + "xarray", + "pandas", + "sklearn", + "sklearn", + "sklearn", + "sklearn", + "xgboost", + "numpy", + "geopandas", + "cdsapi", + "urllib3", + "joblib", + "imblearn", + "matplotlib", + "plot_metric", + "shapely", + "scipy", + "netCDF4", + "pyro_risks.version" +] +ignore_missing_imports = true + +[tool.black] +line-length = 120 +target-version = ['py310'] \ No newline at end of file From 05f4ad6e7955068205304db1f323e5f59da11505 Mon Sep 17 00:00:00 2001 From: Joshua Sant'Anna <45068597+jsakv@users.noreply.github.com> Date: Wed, 3 Jul 2024 00:05:27 +0200 Subject: [PATCH 18/41] refactor: Update dockerfile --- Dockerfile | 36 +++++++++++++----------------------- 1 file changed, 13 insertions(+), 23 deletions(-) diff --git a/Dockerfile b/Dockerfile index 0d6dc9f..70dbb9d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,28 +1,18 @@ -FROM python:3.8.1 +FROM python:3.10-buster -# set work directory -WORKDIR /usr/src/app +RUN pip install poetry==1.7.1 -# set environment variables -ENV PYTHONDONTWRITEBYTECODE 1 -ENV PYTHONUNBUFFERED 1 +ENV POETRY_NO_INTERACTION=1 \ + POETRY_VIRTUALENVS_IN_PROJECT=1 \ + POETRY_VIRTUALENVS_CREATE=1 \ + POETRY_CACHE_DIR=/tmp/poetry_cache \ + VIRTUAL_ENV=/app/.venv \ + PATH="/app/.venv/bin:$PATH" -# copy app requirements -COPY ./requirements.txt requirements.txt -COPY ./requirements-app.txt /usr/src/app/requirements-app.txt -COPY ./setup.py setup.py -COPY ./README.md README.md -COPY ./pyrorisks pyrorisks +WORKDIR /app -# install dependencies -RUN apt-get update && \ - apt-get install --no-install-recommends -y libspatialindex-dev python3-rtree && \ - pip install --upgrade pip setuptools wheel && \ - pip install -e . && \ - pip install -r /usr/src/app/requirements-app.txt && \ - mkdir /usr/src/app/app && \ - rm -rf /root/.cache/pip && \ - rm -rf /var/lib/apt/lists/* +COPY pyrorisks ./pyrorisks +COPY app ./app +COPY pyproject.toml poetry.lock README.md ./ -# copy project -COPY app/ /usr/src/app/app/ +RUN poetry install From db8c3058f1302a092e169309118a0e8b29840917 Mon Sep 17 00:00:00 2001 From: Joshua Sant'Anna <45068597+jsakv@users.noreply.github.com> Date: Wed, 3 Jul 2024 19:20:47 +0200 Subject: [PATCH 19/41] refactor: Add dependencies explicitly --- poetry.lock | 166 ++++++++++++++++++++++++++++++++++++++++++++++++- pyproject.toml | 4 +- 2 files changed, 168 insertions(+), 2 deletions(-) diff --git a/poetry.lock b/poetry.lock index cf193cf..c048277 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,5 +1,20 @@ # This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. +[[package]] +name = "affine" +version = "2.4.0" +description = "Matrices describing affine transformation of the plane" +optional = false +python-versions = ">=3.7" +files = [ + {file = "affine-2.4.0-py3-none-any.whl", hash = "sha256:8a3df80e2b2378aef598a83c1392efd47967afec4242021a0b06b4c7cbc61a92"}, + {file = "affine-2.4.0.tar.gz", hash = "sha256:a24d818d6a836c131976d22f8c27b8d3ca32d0af64c1d8d29deb7bafa4da1eea"}, +] + +[package.extras] +dev = ["coveralls", "flake8", "pydocstyle"] +test = ["pytest (>=4.6)", "pytest-cov"] + [[package]] name = "annotated-types" version = "0.7.0" @@ -32,6 +47,25 @@ doc = ["Sphinx", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd- test = ["anyio[trio]", "coverage[toml] (>=4.5)", "hypothesis (>=4.0)", "mock (>=4)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] trio = ["trio (<0.22)"] +[[package]] +name = "attrs" +version = "23.2.0" +description = "Classes Without Boilerplate" +optional = false +python-versions = ">=3.7" +files = [ + {file = "attrs-23.2.0-py3-none-any.whl", hash = "sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1"}, + {file = "attrs-23.2.0.tar.gz", hash = "sha256:935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30"}, +] + +[package.extras] +cov = ["attrs[tests]", "coverage[toml] (>=5.3)"] +dev = ["attrs[tests]", "pre-commit"] +docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope-interface"] +tests = ["attrs[tests-no-zope]", "zope-interface"] +tests-mypy = ["mypy (>=1.6)", "pytest-mypy-plugins"] +tests-no-zope = ["attrs[tests-mypy]", "cloudpickle", "hypothesis", "pympler", "pytest (>=4.3.0)", "pytest-xdist[psutil]"] + [[package]] name = "black" version = "23.12.1" @@ -251,6 +285,40 @@ files = [ [package.dependencies] colorama = {version = "*", markers = "platform_system == \"Windows\""} +[[package]] +name = "click-plugins" +version = "1.1.1" +description = "An extension module for click to enable registering CLI commands via setuptools entry-points." +optional = false +python-versions = "*" +files = [ + {file = "click-plugins-1.1.1.tar.gz", hash = "sha256:46ab999744a9d831159c3411bb0c79346d94a444df9a3a3742e9ed63645f264b"}, + {file = "click_plugins-1.1.1-py2.py3-none-any.whl", hash = "sha256:5d262006d3222f5057fd81e1623d4443e41dcda5dc815c06b442aa3c02889fc8"}, +] + +[package.dependencies] +click = ">=4.0" + +[package.extras] +dev = ["coveralls", "pytest (>=3.6)", "pytest-cov", "wheel"] + +[[package]] +name = "cligj" +version = "0.7.2" +description = "Click params for commmand line interfaces to GeoJSON" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, <4" +files = [ + {file = "cligj-0.7.2-py3-none-any.whl", hash = "sha256:c1ca117dbce1fe20a5809dc96f01e1c2840f6dcc939b3ddbb1111bf330ba82df"}, + {file = "cligj-0.7.2.tar.gz", hash = "sha256:a4bc13d623356b373c2c27c53dbd9c68cae5d526270bfa71f6c6fa69669c6b27"}, +] + +[package.dependencies] +click = ">=4.0" + +[package.extras] +test = ["pytest-cov"] + [[package]] name = "colorama" version = "0.4.6" @@ -903,6 +971,20 @@ dev = ["Cython"] geopandas = ["geopandas"] test = ["pytest", "pytest-cov"] +[[package]] +name = "pyparsing" +version = "3.1.2" +description = "pyparsing module - Classes and methods to define and execute parsing grammars" +optional = false +python-versions = ">=3.6.8" +files = [ + {file = "pyparsing-3.1.2-py3-none-any.whl", hash = "sha256:f9db75911801ed778fe61bb643079ff86601aca99fcae6345aa67292038fb742"}, + {file = "pyparsing-3.1.2.tar.gz", hash = "sha256:a1bac0ce561155ecc3ed78ca94d3c9378656ad4c94c1270de543f621420f94ad"}, +] + +[package.extras] +diagrams = ["jinja2", "railroad-diagrams"] + [[package]] name = "pyproj" version = "3.6.1" @@ -1049,6 +1131,55 @@ files = [ {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, ] +[[package]] +name = "rasterio" +version = "1.3.10" +description = "Fast and direct raster I/O for use with Numpy and SciPy" +optional = false +python-versions = ">=3.8" +files = [ + {file = "rasterio-1.3.10-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:2ef27c3eff6f44f8b5d5de228003367c1843593edf648d85c0dc1319c00dc57d"}, + {file = "rasterio-1.3.10-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c711b497e9ef0c4f5e1c01e34ba910708e066e1c4a69c25df18d1bcc04481287"}, + {file = "rasterio-1.3.10-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:d1ac85857144cb8075e332e9d908b65426d30ddc1f59f7a04bcf6ed6fd3c0d47"}, + {file = "rasterio-1.3.10-cp310-cp310-win_amd64.whl", hash = "sha256:ef8a496740df1e68f7a3d3449aa3be9c3210c22f4bb78a4a9e1c290183abd9b1"}, + {file = "rasterio-1.3.10-cp311-cp311-macosx_10_15_x86_64.whl", hash = "sha256:97d867cada29f16cb83f1743217f775f8b982676fcdda77671d25abb26698159"}, + {file = "rasterio-1.3.10-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:505b3e659eb3b137192c25233bf7954bc4997b1a474bae9e129fbd5ac2619404"}, + {file = "rasterio-1.3.10-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:30f27e309a14a70c821d10a0ea18b110968dc2e2186b06a900aebd92094f4e00"}, + {file = "rasterio-1.3.10-cp311-cp311-win_amd64.whl", hash = "sha256:cbb2eea127328302f9e3158a000363a7d9eea22537378dee4f824a7fa2d78c05"}, + {file = "rasterio-1.3.10-cp312-cp312-macosx_10_15_x86_64.whl", hash = "sha256:3a9c4fb63e050e11bcd23e53f084ca186b445f976df1f70e7abd851c4072837f"}, + {file = "rasterio-1.3.10-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7c7ddca79444fd3b933f4cd1a1773e9f7839d0ce5d76e600bdf92ee9a79b95f8"}, + {file = "rasterio-1.3.10-cp312-cp312-manylinux2014_x86_64.whl", hash = "sha256:f9cd757e11cfb07ef39b1cc79a32497bf22aff7fec41fe330b868cb3043b4db5"}, + {file = "rasterio-1.3.10-cp312-cp312-win_amd64.whl", hash = "sha256:7e653968f64840654d277e0f86f8666ed8f3030ba36fa865f420f9bc38d619ee"}, + {file = "rasterio-1.3.10-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:7a22c0e0cf07dbed6576faf9a49bc4afa1afedd5a14441b64a3d3dd6d10dc274"}, + {file = "rasterio-1.3.10-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:d29d30c2271fa265913bd3db93fa213d3a0894362ec704e7273cf30443098a90"}, + {file = "rasterio-1.3.10-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:287e8d0d0472c778aa0b6392e9c00894a80f2bace28fa6eddb76c0a895097947"}, + {file = "rasterio-1.3.10-cp38-cp38-win_amd64.whl", hash = "sha256:a420e5f25108b1c92c5d071cfd6518b3766f20a6eddb1b322d06c3d46a89fab6"}, + {file = "rasterio-1.3.10-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:73ea4d0e584f696ef115601bbb97ba8d2b68a67c2bb3b40999414d31b6c7cf89"}, + {file = "rasterio-1.3.10-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e6eece6420d7d6ef9b9830633b8fcd15e86b8702cb13419abe251c16ca502cf3"}, + {file = "rasterio-1.3.10-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:0bbd62b45a35cab53cb7fe72419e823e47ab31ee2d055af8e21dc7f37fe5ed6c"}, + {file = "rasterio-1.3.10-cp39-cp39-win_amd64.whl", hash = "sha256:450f2bd45335308829da90566fbcbdb8e8aa0251a9d1f6ebb60667855dfb7554"}, + {file = "rasterio-1.3.10.tar.gz", hash = "sha256:ce182c735b4f9e8735d90600607ecab15ef895eb8aa660bf665751529477e326"}, +] + +[package.dependencies] +affine = "*" +attrs = "*" +certifi = "*" +click = ">=4.0" +click-plugins = "*" +cligj = ">=0.5" +numpy = "*" +setuptools = "*" +snuggs = ">=1.4.1" + +[package.extras] +all = ["boto3 (>=1.2.4)", "ghp-import", "hypothesis", "ipython (>=2.0)", "matplotlib", "numpydoc", "packaging", "pytest (>=2.8.2)", "pytest-cov (>=2.2.0)", "shapely", "sphinx", "sphinx-rtd-theme"] +docs = ["ghp-import", "numpydoc", "sphinx", "sphinx-rtd-theme"] +ipython = ["ipython (>=2.0)"] +plot = ["matplotlib"] +s3 = ["boto3 (>=1.2.4)"] +test = ["boto3 (>=1.2.4)", "hypothesis", "packaging", "pytest (>=2.8.2)", "pytest-cov (>=2.2.0)", "shapely"] + [[package]] name = "requests" version = "2.32.3" @@ -1113,6 +1244,21 @@ botocore = ">=1.33.2,<2.0a.0" [package.extras] crt = ["botocore[crt] (>=1.33.2,<2.0a.0)"] +[[package]] +name = "setuptools" +version = "70.2.0" +description = "Easily download, build, install, upgrade, and uninstall Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "setuptools-70.2.0-py3-none-any.whl", hash = "sha256:b8b8060bb426838fbe942479c90296ce976249451118ef566a5a0b7d8b78fb05"}, + {file = "setuptools-70.2.0.tar.gz", hash = "sha256:bd63e505105011b25c3c11f753f7e3b8465ea739efddaccef8f0efac2137bac1"}, +] + +[package.extras] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "mypy (==1.10.0)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (>=0.3.2)", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] + [[package]] name = "shapely" version = "2.0.4" @@ -1192,6 +1338,24 @@ files = [ {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, ] +[[package]] +name = "snuggs" +version = "1.4.7" +description = "Snuggs are s-expressions for Numpy" +optional = false +python-versions = "*" +files = [ + {file = "snuggs-1.4.7-py3-none-any.whl", hash = "sha256:988dde5d4db88e9d71c99457404773dabcc7a1c45971bfbe81900999942d9f07"}, + {file = "snuggs-1.4.7.tar.gz", hash = "sha256:501cf113fe3892e14e2fee76da5cd0606b7e149c411c271898e6259ebde2617b"}, +] + +[package.dependencies] +numpy = "*" +pyparsing = ">=2.1.6" + +[package.extras] +test = ["hypothesis", "pytest"] + [[package]] name = "starlette" version = "0.27.0" @@ -1301,4 +1465,4 @@ test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess [metadata] lock-version = "2.0" python-versions = "^3.10" -content-hash = "8fe4154e87c387421fa80ef8d9df954bc92874fb0c6f7017a9008a2a6ee8bc64" +content-hash = "abe942688e45b4ca0e7afaa5eb75086ecf036333faeae141b572023ce1380293" diff --git a/pyproject.toml b/pyproject.toml index b9c9ad2..4730397 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ description = "Data pre-processing pipelines and models for wildfire forecasting authors = ["Pyronear "] license = "Apache-2.0" readme = "README.md" -packages = [{include = "pyrorisks"}] +packages = [{include = "pyrorisks"}, {include = "app"}] classifiers=[ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", @@ -31,6 +31,8 @@ python = "^3.10" requests = "^2.31.0" geopandas = "1.0.1" boto3 = "^1.28.62" +rasterio = "^1.3.10" +shapely = "^2.0.4" From 706d910a9bb0ebdbcc9ce19c547bab3ad63f073a Mon Sep 17 00:00:00 2001 From: Joshua Sant'Anna <45068597+jsakv@users.noreply.github.com> Date: Wed, 3 Jul 2024 19:22:45 +0200 Subject: [PATCH 20/41] refactor: Update app deployment --- Dockerfile | 2 +- app/api/inference.py | 3 ++- docker-compose.yml | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 70dbb9d..dfc366b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM python:3.10-buster -RUN pip install poetry==1.7.1 +RUN pip install poetry==1.8.1 ENV POETRY_NO_INTERACTION=1 \ POETRY_VIRTUALENVS_IN_PROJECT=1 \ diff --git a/app/api/inference.py b/app/api/inference.py index a813252..2c89471 100644 --- a/app/api/inference.py +++ b/app/api/inference.py @@ -9,7 +9,8 @@ class Mock: def predict(self, date): - return {"01": 0.5, "02": 0.5} + _ = date + return {"01": {"score": 0.5, "explainability": "weather"}, "02": {"score": 0.5, "explainability": "weather"}} predictor = Mock() diff --git a/docker-compose.yml b/docker-compose.yml index a05ba86..cb1a624 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: . command: uvicorn app.main:app --reload --workers 1 --host 0.0.0.0 --port 8000 volumes: - - ./app/:/usr/src/app/app/ + - ./app/:/app/app/ ports: - ${PORT}:8000 environment: From 665c8a45cdd76aefd22e0738e0d8d1afbdaa1568 Mon Sep 17 00:00:00 2001 From: Joshua Sant'Anna <45068597+jsakv@users.noreply.github.com> Date: Tue, 9 Jul 2024 10:08:41 +0200 Subject: [PATCH 21/41] chore: Remove docs requirements.txt --- docs/requirements.txt | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 docs/requirements.txt diff --git a/docs/requirements.txt b/docs/requirements.txt deleted file mode 100644 index 0933295..0000000 --- a/docs/requirements.txt +++ /dev/null @@ -1,5 +0,0 @@ -sphinx -sphinx-rtd-theme==0.4.3 -myst-parser==0.12.10 -sphinx-autobuild==2020.9.1 -Jinja2<3.1 From 639e154dc3fc11c3789cd9cee92af28089ed6d7b Mon Sep 17 00:00:00 2001 From: Joshua Sant'Anna <45068597+jsakv@users.noreply.github.com> Date: Tue, 9 Jul 2024 10:09:12 +0200 Subject: [PATCH 22/41] chore: Remove CI requirements.txt --- .github/workflows/requirements.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 .github/workflows/requirements.txt diff --git a/.github/workflows/requirements.txt b/.github/workflows/requirements.txt deleted file mode 100644 index 7dd0fc7..0000000 --- a/.github/workflows/requirements.txt +++ /dev/null @@ -1 +0,0 @@ -coverage>=4.5.4 From 529e6b3bd04bda525fc2cd6c9371403c67d19c58 Mon Sep 17 00:00:00 2001 From: Joshua Sant'Anna <45068597+jsakv@users.noreply.github.com> Date: Tue, 9 Jul 2024 10:13:13 +0200 Subject: [PATCH 23/41] chore: Add rasterio manylinux wheel --- .gitignore | 2 +- ...-1.3.10-cp39-cp39-manylinux2014_x86_64.whl | Bin 0 -> 21501230 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 build/rasterio-1.3.10-cp39-cp39-manylinux2014_x86_64.whl diff --git a/.gitignore b/.gitignore index 2d5b3f2..1bacf7f 100644 --- a/.gitignore +++ b/.gitignore @@ -8,7 +8,7 @@ __pycache__/ # Distribution / packaging .Python -build/ +docs/build/ develop-eggs/ dist/ downloads/ diff --git a/build/rasterio-1.3.10-cp39-cp39-manylinux2014_x86_64.whl b/build/rasterio-1.3.10-cp39-cp39-manylinux2014_x86_64.whl new file mode 100644 index 0000000000000000000000000000000000000000..80b1beb89e72d3fea0a35256cf635f2c54ddb420 GIT binary patch literal 21501230 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
P5pNg5iN{3O(H4^ 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

G+7f@kTX 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

a|*GgqG^~hu_vr!VJIyv|f~@ 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 !rK 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