diff --git a/extreme_estimator/estimator/abstract_estimator.py b/extreme_estimator/estimator/abstract_estimator.py index 84e8f5ff6514a69521211e4d696d427ac7a74e4a..40ca905b2e3ab6dc131a99edde8bf636e396a56c 100644 --- a/extreme_estimator/estimator/abstract_estimator.py +++ b/extreme_estimator/estimator/abstract_estimator.py @@ -1,4 +1,12 @@ class AbstractEstimator(object): - pass \ No newline at end of file + + def __init__(self): + pass + + def fit(self): + pass + + def error(self): + pass \ No newline at end of file diff --git a/extreme_estimator/robustness_plot/abstract_robustness.py b/extreme_estimator/robustness_plot/abstract_robustness.py index 7ab9deca568823f39210db41941f8df2d757cf25..b40f9bd2dc28932a0e8a1933305d0d0b8d485de9 100644 --- a/extreme_estimator/robustness_plot/abstract_robustness.py +++ b/extreme_estimator/robustness_plot/abstract_robustness.py @@ -5,7 +5,7 @@ from extreme_estimator.R_fit.max_stable_fit.max_stable_models import GaussianMSP from itertools import product from spatio_temporal_dataset.dataset.simulation_dataset import SimulatedDataset -from spatio_temporal_dataset.spatial_coordinates.generated_coordinate import CircleCoordinates +from spatio_temporal_dataset.spatial_coordinates.generated_coordinates import CircleCoordinates import matplotlib.pyplot as plt plt.style.use('seaborn-white') @@ -82,7 +82,6 @@ class AbstractRobustnessPlot(object): @staticmethod def estimation_error_max_stable_unitary_frechet(**kwargs_single_points): # Get the argument from kwargs - print(kwargs_single_points) max_stable_model = MaxStableModelItem.value_from_kwargs(**kwargs_single_points) spatial_coordinate_class = SpatialCoordinateClassItem.value_from_kwargs(**kwargs_single_points) nb_station = NbStationItem.value_from_kwargs(**kwargs_single_points) diff --git a/extreme_estimator/robustness_plot/spatial_robustness.py b/extreme_estimator/robustness_plot/spatial_robustness.py index aa5e35c51b9fbdac7d6fb9475ecd881a95004ac9..3d872cd2a0ac2522038d6ac2734853c34973d665 100644 --- a/extreme_estimator/robustness_plot/spatial_robustness.py +++ b/extreme_estimator/robustness_plot/spatial_robustness.py @@ -1,7 +1,7 @@ from extreme_estimator.R_fit.max_stable_fit.max_stable_models import GaussianMSP, BrownResick from extreme_estimator.robustness_plot.abstract_robustness import DisplayItem, AbstractRobustnessPlot, \ SpatialCoordinateClassItem, NbObservationItem, NbStationItem, MaxStableModelItem, SpatialParamsItem -from spatio_temporal_dataset.spatial_coordinates.generated_coordinate import CircleCoordinates +from spatio_temporal_dataset.spatial_coordinates.generated_coordinates import CircleCoordinates spatial_robustness = AbstractRobustnessPlot(grid_row_item=SpatialCoordinateClassItem, grid_column_item=NbObservationItem, @@ -10,6 +10,7 @@ spatial_robustness = AbstractRobustnessPlot(grid_row_item=SpatialCoordinateClass # Put only the parameter that will vary spatial_robustness.robustness_grid_plot(**{ - NbStationItem.argument_name: [10, 20, 30, 40, 50], - MaxStableModelItem.argument_name: [GaussianMSP(), BrownResick()][:] + NbStationItem.argument_name: [10, 30, 50, 100], + MaxStableModelItem.argument_name: [GaussianMSP(), BrownResick()][:], + NbObservationItem.argument_name: [10, 50, 100] }) diff --git a/spatio_temporal_dataset/dataset/abstract_dataset.py b/spatio_temporal_dataset/dataset/abstract_dataset.py index 25d13e0e9653dfa2d460c17631ef10cc8c565828..b270fc133b29e9f9662eb7393f28e837ed9422b1 100644 --- a/spatio_temporal_dataset/dataset/abstract_dataset.py +++ b/spatio_temporal_dataset/dataset/abstract_dataset.py @@ -2,7 +2,7 @@ import os import os.path as op import pandas as pd from spatio_temporal_dataset.temporal_maxima.temporal_maxima import TemporalMaxima -from spatio_temporal_dataset.spatial_coordinates.abstract_coordinate import AbstractSpatialCoordinates +from spatio_temporal_dataset.spatial_coordinates.abstract_coordinates import AbstractSpatialCoordinates class AbstractDataset(object): diff --git a/spatio_temporal_dataset/dataset/simulation_dataset.py b/spatio_temporal_dataset/dataset/simulation_dataset.py index b7e0175232b7c5fed9b572ab0ec93c1ee72d56aa..bc6a2860532661a69ccda797f76e3ec36882bcc0 100644 --- a/spatio_temporal_dataset/dataset/simulation_dataset.py +++ b/spatio_temporal_dataset/dataset/simulation_dataset.py @@ -2,8 +2,8 @@ from extreme_estimator.R_fit.max_stable_fit.max_stable_models import MaxStableMo import pandas as pd from spatio_temporal_dataset.dataset.abstract_dataset import AbstractDataset from spatio_temporal_dataset.temporal_maxima.temporal_maxima import TemporalMaxima -from spatio_temporal_dataset.spatial_coordinates.abstract_coordinate import AbstractSpatialCoordinates -from spatio_temporal_dataset.spatial_coordinates.generated_coordinate import CircleCoordinates +from spatio_temporal_dataset.spatial_coordinates.abstract_coordinates import AbstractSpatialCoordinates +from spatio_temporal_dataset.spatial_coordinates.generated_coordinates import CircleCoordinates class SimulatedDataset(AbstractDataset): diff --git a/spatio_temporal_dataset/spatial_coordinates/abstract_coordinate.py b/spatio_temporal_dataset/spatial_coordinates/abstract_coordinates.py similarity index 98% rename from spatio_temporal_dataset/spatial_coordinates/abstract_coordinate.py rename to spatio_temporal_dataset/spatial_coordinates/abstract_coordinates.py index 3d25de71f2056f24f2ba3f69e703049cf70dc211..31bf1787b8361bb49542a6be14d016b99c780f14 100644 --- a/spatio_temporal_dataset/spatial_coordinates/abstract_coordinate.py +++ b/spatio_temporal_dataset/spatial_coordinates/abstract_coordinates.py @@ -9,6 +9,7 @@ class AbstractSpatialCoordinates(object): COORD_X = 'coord_x' COORD_Y = 'coord_y' COORD_SPLIT = 'coord_split' + COOR_ID = 'coord_id' # Constants TRAIN_SPLIT_STR = 'train_split' TEST_SPLIT_STR = 'test_split' diff --git a/spatio_temporal_dataset/spatial_coordinates/alps_station_coordinates.py b/spatio_temporal_dataset/spatial_coordinates/alps_station_coordinates.py new file mode 100644 index 0000000000000000000000000000000000000000..4e8c4a594e3e5fff0f81bc3b815e3d87e1ac868a --- /dev/null +++ b/spatio_temporal_dataset/spatial_coordinates/alps_station_coordinates.py @@ -0,0 +1,37 @@ +import pandas as pd +import os.path as op + +from spatio_temporal_dataset.spatial_coordinates.abstract_coordinates import AbstractSpatialCoordinates +from utils import get_full_path + + +class AlpsStationCoordinate(AbstractSpatialCoordinates): + RELATIVE_PATH = r'local/spatio_temporal_datasets/Gilles - precipitations' + FULL_PATH = get_full_path(relative_path=RELATIVE_PATH) + + @classmethod + def from_csv(cls, csv_file='coord-lambert2'): + csv_path = op.join(cls.FULL_PATH, csv_file + '.csv') + return super().from_csv(csv_path) + + @classmethod + def transform_txt_into_csv(cls): + filepath = op.join(cls.FULL_PATH, 'original data', 'coord-lambert2.txt') + station_to_coordinates = {} + with open(filepath, 'r') as f: + for l in f: + _, station_name, coordinates = l.split('"') + coordinates = coordinates.split() + assert len(coordinates) == 3 + station_to_coordinates[station_name] = coordinates + df = pd.DataFrame.from_dict(data=station_to_coordinates, orient='index', + columns=[cls.COORD_X, cls.COORD_Y, cls.COOR_ID]) + df.to_csv(op.join(cls.FULL_PATH, 'coord-lambert2.csv')) + print(df.head()) + print(df.index) + + +if __name__ == '__main__': + # AlpsStationCoordinate.transform_txt_into_csv() + coord = AlpsStationCoordinate.from_csv() + coord.visualization() diff --git a/spatio_temporal_dataset/spatial_coordinates/generated_coordinate.py b/spatio_temporal_dataset/spatial_coordinates/generated_coordinates.py similarity index 97% rename from spatio_temporal_dataset/spatial_coordinates/generated_coordinate.py rename to spatio_temporal_dataset/spatial_coordinates/generated_coordinates.py index b937b22e9d4f7944b27569bf8b8ee2bbf9d57153..81cbc1b33e799ce15db1194390da222e664c5021 100644 --- a/spatio_temporal_dataset/spatial_coordinates/generated_coordinate.py +++ b/spatio_temporal_dataset/spatial_coordinates/generated_coordinates.py @@ -3,7 +3,7 @@ import numpy as np import pandas as pd from extreme_estimator.R_fit.utils import get_loaded_r -from spatio_temporal_dataset.spatial_coordinates.abstract_coordinate import AbstractSpatialCoordinates +from spatio_temporal_dataset.spatial_coordinates.abstract_coordinates import AbstractSpatialCoordinates import matplotlib.pyplot as plt diff --git a/spatio_temporal_dataset/spatial_coordinates/normalized_coordinates.py b/spatio_temporal_dataset/spatial_coordinates/normalized_coordinates.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/utils.py b/utils.py new file mode 100644 index 0000000000000000000000000000000000000000..8b65aecf4e28eafdb3699d20d3c7be2067c4215a --- /dev/null +++ b/utils.py @@ -0,0 +1,11 @@ +import os +import os.path as op + + +def get_root_path() -> str: + return os.path.dirname(os.path.abspath(__file__)) + + +def get_full_path(relative_path: str) -> str: + return op.join(get_root_path(), relative_path) +