#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Wed Sep 6 10:39:50 2023 @author: rivallandv """ import pandas as pd import matplotlib.pyplot as plt import numpy as np # Modspa excel file - Reference Simmonneaux ! # xls_file_path = './SAMIR_xls/SAMIRpixel_Reference_Simonneaux2012.xls' xls_file_path = 'SAMIRxls_Reference.FR-Lam2019.xls' titre = 'Irrigated Maize - France (Lam-2019)' figname = '-Maize-Lam-2019' def rmse_calc(predictions, targets): """ RMSE calculate. Parameters ---------- predictions : TYPE model. targets : TYPE observation. Returns ------- Real RMSE. """ return np.sqrt(((predictions - targets) ** 2).mean()) # %% Lecture de l'ensemble des variables au format dataframe df_samir_xls = pd.read_excel(xls_file_path, sheet_name='Table', header=10, index_col=0) df_samir_xls = df_samir_xls.loc[:, ~df_samir_xls.columns.str.contains('^Unnamed')] # df_samir_xls dates = df_samir_xls.index # %% NDVI and co. plt.figure(1) plt.plot(dates, df_samir_xls.NDVI, "green") plt.plot(dates, df_samir_xls.Kcb, "blue") plt.plot(dates, df_samir_xls.FCov, "red") plt.legend(['NDVI', 'Kcb', 'FCov']) plt.xticks(rotation=20) plt.title(titre) plt.savefig('NDVI-Kcb-FCov'+figname+'.png') # %% ET0 to ETR plt.figure(2) plt.plot(dates, df_samir_xls.ET0, "red") plt.plot(dates, df_samir_xls.ETobs, 'ok') plt.text(dates[4], 5, "rmse="+str(round(rmse_calc(df_samir_xls.ET0, df_samir_xls.ETobs), 2))) plt.legend(['ET0', 'ETobs']) plt.xticks(rotation=20) plt.ylim([0, 10]) plt.title(titre) plt.savefig('ET0toETR-Wheat'+figname+'.png') # %% plt.figure(3) plt.plot(dates, df_samir_xls.ET0, "skyblue") plt.plot(dates, df_samir_xls.ET0*df_samir_xls.Kcb, "red") plt.plot(dates, df_samir_xls.ETobs, 'ok') plt.text(dates[4], 4, "rmse="+str(round(rmse_calc(df_samir_xls.ET0*df_samir_xls.Kcb, df_samir_xls.ETobs), 2))) plt.legend(['ET0', 'Kcb.ET0', 'ETobs']) plt.xticks(rotation=20) plt.ylim([0, 10]) plt.title(titre) plt.savefig('ET0toETR'+figname+'.3.png') # %% plt.figure(4) plt.plot(dates, df_samir_xls.ET0, "skyblue") plt.plot(dates, df_samir_xls.ET0*df_samir_xls.Kcb, "gray") plt.plot(dates, df_samir_xls.ET0*df_samir_xls.Kcb+df_samir_xls.E, "red") plt.plot(dates, df_samir_xls.ETobs, 'ok') plt.text(dates[4], 4, "rmse="+str(round(rmse_calc(df_samir_xls.ET0*df_samir_xls.Kcb+df_samir_xls.E, df_samir_xls.ETobs), 2))) plt.legend(['ET0', 'Kcb.ET0', 'Kcb.ET0+Ke.ET0', 'ETobs']) plt.xticks(rotation=20) plt.ylim([0, 10]) plt.title(titre) plt.savefig('ET0toETR'+figname+'.4.png') # %% plt.figure(5) plt.plot(dates, df_samir_xls.ET0, "skyblue") plt.plot(dates, df_samir_xls.ET0*df_samir_xls.Kcb, "lightgray") plt.plot(dates, df_samir_xls.ET0*df_samir_xls.Kcb+df_samir_xls.E, "gray") plt.plot(dates, df_samir_xls.ET, "red") plt.plot(dates, df_samir_xls.ETobs, 'ok') plt.text(dates[4], 4, "rmse="+str(round(rmse_calc(df_samir_xls.ET, df_samir_xls.ETobs), 2))) plt.legend(['ET0', 'Kcb.ET0', 'Kcb.ET0+Ke.ET0', 'Kcb.Ks.ET0+Ke.ET0', 'ETobs']) plt.xticks(rotation=20) plt.ylim([0, 10]) plt.title(titre) plt.savefig('ET0toETR'+figname+'.5.png') # %% plt.figure(6) plt.subplot(221) plt.plot(dates, df_samir_xls.swc5obsvol, marker="o", color="chocolate", linestyle='', markersize=3) plt.plot(dates, df_samir_xls.swc10obsvol, marker="s", color="gray", linestyle='', markersize=3) plt.plot(dates, df_samir_xls.SWCe, color="red") plt.ylabel('% of TAW') plt.legend(['obs 5', 'obs 10', 'SWCe']) plt.xticks(rotation=20) plt.subplot(222) plt.plot(dates, df_samir_xls.swc30obsvol, marker="o", color="chocolate", linestyle='', markersize=3) plt.plot(dates, df_samir_xls.swc50obsvol, marker="s", color="gray", linestyle='', markersize=3) plt.plot(dates, df_samir_xls.SWCr, color="red") plt.ylabel('% of TAW') plt.legend(['obs 30', 'obs 50', 'SWCroot']) plt.xticks(rotation=20) plt.subplot(223) plt.plot(dates, df_samir_xls.swc100obsvol, marker="o", color="chocolate", linestyle='', markersize=3) plt.plot(dates, df_samir_xls.SWCd, color="blue") plt.ylabel('% of TAW') plt.legend(['obs 100', 'SWCd']) plt.xticks(rotation=20) plt.subplot(224) plt.plot(dates, df_samir_xls.Ks, "red") plt.plot(dates, df_samir_xls.Kei+df_samir_xls.Kep, "sienna") plt.plot(dates, df_samir_xls.Kcb, "green") plt.plot(dates, df_samir_xls.FCov, "chocolate") plt.legend(['Ks', 'Ke', 'Kcb', "Fcov"]) plt.xticks(rotation=20) plt.suptitle(titre) # plt.ylim([0, 7]) plt.savefig('SWC-Ks'+figname+'.1.png') # %% Etude entre rapport ETRobs/ET0 et Kc plt.figure(7) df_samir_xls['Kcobs'] = df_samir_xls['ETobs_ET0'].rolling(window=5).mean() plt.figure() plt.plot(dates, df_samir_xls.ETobs/df_samir_xls.ET0, 'or', markersize=3) plt.plot(dates, df_samir_xls.NDVI, 'green') plt.plot(dates, df_samir_xls.Kcobs, 'r') plt.plot(dates, df_samir_xls.Kcb*df_samir_xls.Ks, 'chocolate') plt.plot(dates, df_samir_xls.Kcb*df_samir_xls.Ks+(df_samir_xls.Kei+df_samir_xls.Kep), 'gray') plt.legend(['Kcobs', 'NDVI', 'Kcobsmean', 'KcbxKs', 'KcbxKs+Ke', 'Kc_obs=ETobs/ET0'], loc='best') plt.xticks(rotation=20) plt.title(titre) # %% ETRobs vs ETRsim plt.figure() plt.plot(df_samir_xls.ET, df_samir_xls.ETobs, 'ok', markersize=3) plt.plot([0, 10], [0, 10], 'r') plt.xlabel("ETR sim mm/d") plt.ylabel("ETR obs mm/d") plt.text(0, 6, "rmse="+str(round(rmse_calc(df_samir_xls.ET, df_samir_xls.ETobs), 2))) plt.title(titre) plt.axis('square')