00:39:15 Christian Barreto: sst_trop_jan_anomstd.sel(time="2002-01-01").plot(robust=True) plt.title("2002-01-01 original") 00:40:34 Christian Barreto: sst_recons=solver.reconstructedField(neofs=1) sst_recons.sel(time="2002-01-01").plot(robust=True) plt.title("2002-01-01 reconstruido") 00:57:24 MARTÍN CAILLAHUA: Hola, Christian. Debo retirarme, los martes y jueves tengo otras clases a las 6pm. Hasta el viernes para las presentaciones. Buenas tardes. 01:17:18 Tania Ita Vargas: Cual es el objetivo de hacer las rotaciones? hay pro y contras? 01:17:55 Tania Ita Vargas: y cuando se sugiere hacer rotaciones? 01:18:39 Tania Ita Vargas: otra pregunta mas... Como se quitaría la señal del Niño en una serie de tiempo? 01:24:04 Tania Ita Vargas: Gracias! 01:48:09 Christian Barreto: pip install SkillMetrics 01:51:03 Christian Barreto: %reset -sf import numpy as np import pandas as pd import matplotlib.pyplot as plt file="Chuquibambilla_Puno.xlsx" data=pd.read_excel(file) data 01:51:17 Christian Barreto: data_idx=data.set_index('FECHA') data_idx 01:51:31 Christian Barreto: #sacamos solo anomalia de febrero data_feb=data_idx.loc[data_idx.index.month==2] data_feb_c=data_feb.loc['1981-02-1':'2010-02-01'] data_feb_anom=data_feb-data_feb_c.mean() data_feb_anom_totest=data_feb_anom.loc['1981-02-1':'2010-02-1'] ax=data_feb_anom_totest.plot(marker="*") ax.axhline(0,color="k",linestyle="solid") 01:52:14 Christian Barreto: #sacamos solo anomalia de enero data_ene=data_idx.loc[data_idx.index.month==1] data_ene_c=data_ene.loc['1981-01-1':'2010-01-01'] data_ene_anom=data_ene-data_ene_c.mean() data_ene_anom_totest=data_ene_anom.loc['1981-01-1':'2010-01-01'] ax=data_ene_anom_totest.plot(marker="*") ax.axhline(0,color="k",linestyle="solid") 01:52:19 Christian Barreto: jan=data_ene_anom_totest.CHUQUIBAMBILLA.values feb=data_feb_anom_totest.CHUQUIBAMBILLA.values plt.plot(jan) plt.plot(feb) 01:53:15 Christian Barreto: from sklearn.linear_model import LinearRegression lm = LinearRegression() model = lm.fit(jan.reshape((-1,1)),feb) print(f"alpha = {model.intercept_}") print(f"beta = {model.coef_}") a=model.intercept_ b=model.coef_[0] print(a,"-----",b) 01:53:31 Christian Barreto: feb_pers = a + b *jan plt.plot(np.arange(1981,2011),feb,label="feb_obs") plt.plot(np.arange(1981,2011),feb_pers,label="feb_pers") plt.legend() plt.grid() 01:54:04 Christian Barreto: file="nmme_hindcast.xlsx" data_nmme=pd.read_excel(file) data_nmme=data_nmme.PP_NMME.values 01:54:19 Christian Barreto: plt.plot(np.arange(1981,2011),feb,label="feb_obs") plt.plot(np.arange(1981,2011),feb_pers,label="feb perst") plt.plot(np.arange(1981,2011),data_nmme,label="feb pred ens") plt.legend() plt.grid() 01:55:31 Christian Barreto: from scipy import stats from sklearn.metrics import mean_squared_error rmse =mean_squared_error rmse_ens=rmse(feb,data_nmme) rmse_pers=rmse(feb,feb_pers) rmse_obs=rmse(feb,feb) corr_ens=stats.pearsonr(feb, data_nmme)[0] corr_pers=stats.pearsonr(feb, feb_pers)[0] corr_obs=stats.pearsonr(feb, feb)[0] std_ens=np.std(data_nmme) std_pers=np.std(feb_pers) std_obs=np.std(feb) corr_list=np.array([corr_obs,corr_ens,corr_pers]) std_list=np.array([std_obs,std_ens,std_pers]) rmse_list=np.array([rmse_obs,rmse_ens,rmse_pers]) 01:58:26 Christian Barreto: # con pronostico persistencia data_to_compare = pd.DataFrame() data_to_compare['obs']=feb data_to_compare['pers']=feb_pers data_to_compare['ens']=data_nmme 01:58:40 Christian Barreto: import skill_metrics as sm sm.taylor_diagram(std_list,rmse_list,corr_list,markerOBS='D', markerLegend='on', markerLabel=["OBS","ENS","PERS"]) 02:01:40 Christian Barreto: a = len(data_to_compare[(data_to_compare.pers > 0) & (data_to_compare.obs > 0)]) b = len(data_to_compare[(data_to_compare.pers > 0) & (data_to_compare.obs <= 0)]) c = len(data_to_compare[(data_to_compare.pers <= 0) & (data_to_compare.obs > 0)]) d = len(data_to_compare[(data_to_compare.pers <= 0) & (data_to_compare.obs <= 0)]) 02:05:18 Christian Barreto: ########################### 02:05:27 Christian Barreto: # con pronostico persistencia data_to_compare = pd.DataFrame() data_to_compare['obs']=feb data_to_compare['pers']=feb_pers data_to_compare['ens']=data_nmme 02:05:30 Christian Barreto: data_to_compare 02:05:36 Christian Barreto: a = len(data_to_compare[(data_to_compare.pers > 0) & (data_to_compare.obs > 0)]) b = len(data_to_compare[(data_to_compare.pers > 0) & (data_to_compare.obs <= 0)]) c = len(data_to_compare[(data_to_compare.pers <= 0) & (data_to_compare.obs > 0)]) d = len(data_to_compare[(data_to_compare.pers <= 0) & (data_to_compare.obs <= 0)]) 02:05:40 Christian Barreto: print(a,b,c,d) 02:05:44 Christian Barreto: F = b/(b+d) F 02:05:49 Christian Barreto: H=a/(a+c) H 02:06:17 Kelita Quispe Vega: Gracias!