diff --git a/experiment/meteo_france_SCM_study/abstract_study.py b/experiment/meteo_france_SCM_study/abstract_study.py index 29f943a2836fbefffdb63c0285e8391b203a5737..89a3b59e81e245126cfd42fbd3560e746645e0f5 100644 --- a/experiment/meteo_france_SCM_study/abstract_study.py +++ b/experiment/meteo_france_SCM_study/abstract_study.py @@ -3,7 +3,7 @@ import numpy as np from PIL import Image, ImageDraw import os.path as op from collections import OrderedDict -from typing import List, Dict +from typing import List, Dict, Tuple import matplotlib.pyplot as plt import pandas as pd @@ -71,6 +71,11 @@ class AbstractStudy(object): year_to_dataset[year] = Dataset(op.join(self.safran_full_path, nc_file)) return year_to_dataset + @property + def start_year_and_end_year(self) -> Tuple[int, int]: + ordered_years = list(self.year_to_dataset_ordered_dict.keys()) + return ordered_years[0], ordered_years[-1] + @cached_property def year_to_daily_time_serie_array(self) -> OrderedDict: return self._year_to_daily_time_serie_array diff --git a/experiment/meteo_france_SCM_study/visualization/study_visualization/main_study_visualizer.py b/experiment/meteo_france_SCM_study/visualization/study_visualization/main_study_visualizer.py index f6f208fcc883fbbe85f1bcc4d98baa4da6adb04e..026f170809941466b5380ef5df40810f9ad8d96c 100644 --- a/experiment/meteo_france_SCM_study/visualization/study_visualization/main_study_visualizer.py +++ b/experiment/meteo_france_SCM_study/visualization/study_visualization/main_study_visualizer.py @@ -68,13 +68,13 @@ def max_stable_process_vizu_compare_gaume_study(altitude=1800, nb_days=1): study_visualizer.visualize_brown_resnick_fit() -def normal_visualization(): +def normal_visualization(temporal_non_stationarity=False): save_to_file = False only_first_one = True # for study_class in SCM_STUDIES[:1]: for study_class in [SafranSnowfall, SafranRainfall, SafranTemperature][:1]: for study in study_iterator(study_class, only_first_one=only_first_one): - study_visualizer = StudyVisualizer(study, save_to_file=save_to_file) + study_visualizer = StudyVisualizer(study, save_to_file=save_to_file, temporal_non_stationarity=temporal_non_stationarity) # study_visualizer.visualize_independent_margin_fits(threshold=[None, 20, 40, 60][0]) # study_visualizer.visualize_annual_mean_values() study_visualizer.visualize_linear_margin_fit(only_first_max_stable=None) @@ -97,7 +97,7 @@ def complete_analysis(only_first_one=False): if __name__ == '__main__': # annual_mean_vizu_compare_durand_study(safran=True, take_mean_value=True, altitude=2400) - normal_visualization() + normal_visualization(temporal_non_stationarity=True) # max_stable_process_vizu_compare_gaume_study(altitude=1800, nb_days=1) # extended_visualization() # complete_analysis() diff --git a/spatio_temporal_dataset/coordinates/abstract_coordinates.py b/spatio_temporal_dataset/coordinates/abstract_coordinates.py index 4705d7d02ee3b897104eec623b4c84cfd10880ba..b6d2da35282c56d2d0f3d21b8c798c7b41566f91 100644 --- a/spatio_temporal_dataset/coordinates/abstract_coordinates.py +++ b/spatio_temporal_dataset/coordinates/abstract_coordinates.py @@ -162,6 +162,10 @@ class AbstractCoordinates(object): def nb_coordinates_spatial(self) -> int: return len(self.coordinates_spatial_names) + @property + def has_spatial_coordinates(self): + return self.nb_coordinates_spatial > 0 + def df_spatial_coordinates(self, split: Split = Split.all) -> pd.DataFrame: if self.nb_coordinates_spatial == 0: return pd.DataFrame() @@ -185,6 +189,10 @@ class AbstractCoordinates(object): def has_temporal_coordinates(self): return self.nb_coordinates_temporal > 0 + @property + def has_spatio_temporal_coordinates(self): + return self.has_spatial_coordinates and self.has_temporal_coordinates + def df_temporal_coordinates(self, split: Split = Split.all) -> pd.DataFrame: if self.nb_coordinates_temporal == 0: return pd.DataFrame()