From 4ecac4e7f6ada30a912a8a57c3e6d53347423b81 Mon Sep 17 00:00:00 2001 From: Le Roux Erwan <erwan.le-roux@irstea.fr> Date: Thu, 21 Mar 2019 18:12:11 +0100 Subject: [PATCH] [COORDINATES] add some attributes to coordinates and to abstract_study --- experiment/meteo_france_SCM_study/abstract_study.py | 7 ++++++- .../study_visualization/main_study_visualizer.py | 6 +++--- .../coordinates/abstract_coordinates.py | 8 ++++++++ 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/experiment/meteo_france_SCM_study/abstract_study.py b/experiment/meteo_france_SCM_study/abstract_study.py index 29f943a2..89a3b59e 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 f6f208fc..026f1708 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 4705d7d0..b6d2da35 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() -- GitLab