import numpy as np import pandas as pd import matplotlib.pyplot as plt from utils.common import data_to_xarray import seaborn as sns from scipy.stats import spearmanr data = np.load('Datares/tensor_daily_mean_5D.npy') X = data_to_xarray(data) models = np.array(X.coords['model']) stations = np.array(X.coords['station']) variables = np.array(X.coords['var']) fig, ax = plt.subplots(len(variables), 1, figsize=(15, len(variables) * 2), sharex=True) for (i, var) in enumerate(variables): cmatrix = np.zeros((len(models), len(models))) for station in stations: cmatrix += spearmanr(X.sel(var=var, exp='rcp45', station=station))[0] cmatrix = cmatrix / len(stations) plt.sca(ax[i]) #print(var) ax[i].set_title(var) sns.heatmap(cmatrix, annot=True, xticklabels=models, yticklabels=models) plt.savefig('modelcorrelation.pdf')
import xarray as xr from sklearn.neighbors import KDTree from sklearn.neighbors import NearestNeighbors from scipy.stats import spearmanr from statsmodels.graphics.tsaplots import plot_acf from statsmodels.graphics.tsaplots import plot_pacf data = np.load('/Users/Rens/Desktop/Data_CC/tensor_daily_mean_5D.npy') data_scaled = data * 0 for i in range(10): mean = np.nanmean(data[:, :, i, :, :]) data_scaled[:, :, i, :, :] = data[:, :, i, :, :] - mean st_dev = np.nanstd(data[:, :, i, :, :]) data_scaled[:, :, i, :, :] = data_scaled[:, :, i, :, :] / st_dev X = data_to_xarray(data) Y = data_to_xarray(data_scaled) #Y is the normalized data xarray X.head() #regular data Y.head() #normalized data var1 = X.sel(var='uas', station='Marsdiep Noord', exp='rcp45', model='CNRM-CERFACS-CNRM-CM5') var2 = X.sel(var='uas', station='Marsdiep Noord', exp='rcp45', model='ICHEC-EC-EARTH') var3 = X.sel(var='uas', station='Marsdiep Noord', exp='rcp45',