Commit 60e13d95 authored by Le Roux Erwan's avatar Le Roux Erwan
Browse files

two new scripts. One for Nico. One for CMIP5.

parent ba9b09a0
No related merge requests found
Showing with 72 additions and 0 deletions
+72 -0
import cdsapi
c = cdsapi.Client()
models = ['mpi_esm_lr', 'cnrm_cm5']
def get_year_min_and_max(model, experiment):
pass
def retrieve(model, experiment):
year_min, year_max = get_year_min_and_max(model, experiment)
c.retrieve(
'projections-cmip5-monthly-single-levels',
{
'experiment': 'historical',
'variable': '2m_temperature',
'model': 'cnrm_cm5',
'ensemble_member': 'r1i1p1',
'period': '195001-200512',
'format': 'zip',
},
'download.zip')
import pandas as pd
import numpy as np
import xlsxwriter
from extreme_data.meteo_france_data.scm_models_data.abstract_study import AbstractStudy
from extreme_data.meteo_france_data.scm_models_data.crocus.crocus import CrocusDepth, CrocusSwe3Days
from extreme_data.meteo_france_data.scm_models_data.safran.safran import SafranSnowfall1Day, SafranSnowfall3Days
from extreme_data.meteo_france_data.scm_models_data.utils import FrenchRegion
from extreme_data.meteo_france_data.scm_models_data.visualization.main_study_visualizer import \
SCM_STUDY_CLASS_TO_ABBREVIATION
from extreme_fit.estimator.margin_estimator.utils import fitted_stationary_gev
from projects.altitude_spatial_model.altitudes_fit.altitudes_studies import AltitudesStudies
def generate_excel_with_annual_maxima(fast=True):
if fast:
altitudes = [600, 900]
else:
altitudes = [600, 900, 1200, 1500, 1800, 2100, 2400, 2700, 3000, 3300, 3600]
study_class = SafranSnowfall1Day
study_name = SCM_STUDY_CLASS_TO_ABBREVIATION[study_class]
writer = pd.ExcelWriter('{}.xlsx'.format(study_name), engine='xlsxwriter')
altitude_studies = AltitudesStudies(study_class, altitudes)
for massif_name in altitude_studies.study.all_massif_names():
write_df_with_annual_maxima(massif_name, writer, altitude_studies)
writer.save()
def write_df_with_annual_maxima(massif_name, writer, altitude_studies) -> pd.DataFrame:
columns = []
altitudes = []
for altitude, study in altitude_studies.altitude_to_study.items():
df_maxima = study.observations_annual_maxima.df_maxima_gev
if massif_name in study.study_massif_names:
altitudes.append(altitude)
s = df_maxima.loc[massif_name]
# Fit the data and add the parameters as the first columns
columns.append(s)
df = pd.concat(columns, axis=1)
altitude_str = [str(a) + ' m' for a in altitudes]
df.columns = altitude_str
df.to_excel(writer, sheet_name=massif_name)
return df
if __name__ == '__main__':
generate_excel_with_annual_maxima(fast=False)
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment