diff --git a/tools/compare.py b/tools/compare.py index 34f2084051c94187541a190eecf7883284b2e982..230462e4f16f8e987fb9acf344d5a7076950abc1 100755 --- a/tools/compare.py +++ b/tools/compare.py @@ -14,8 +14,11 @@ avail_groups=['Stations/sta1', 'LES_budgets/BU_RT2/Cartesian/Not_time_averaged/Not_normalized/cart/', 'LES_budgets/BU_WRT/Cartesian/Not_time_averaged/Not_normalized/cart/', 'LES_budgets/BU_THLR/Cartesian/Not_time_averaged/Not_normalized/cart/', -] +'Budgets/TH','Budgets/UU','Budgets/WW', +'Budgets/RV','Budgets/RI','Budgets/RC', +'Budgets/RG','Budgets/RS','Budgets/RH','Budgets/TK'] +tol_ad=1E-12 # Error max for budgets def compareBACKUPFiles(file_user, file_ref): status = 0 @@ -62,6 +65,7 @@ def compareTSERIESFiles(file_user, file_ref): da = xr.open_dataset(file_user) da2 = xr.open_dataset(file_ref) variables = list(da.keys()) + JPVEXT=1 try: nk=len(da['level_les']) except: @@ -78,12 +82,12 @@ def compareTSERIESFiles(file_user, file_ref): pass # Groups comparison for grp in avail_groups: - try: + try: # LES or Stations variables in 1D/2D da = xr.open_dataset(file_user, group=grp) da2 = xr.open_dataset(file_ref, group=grp) variables = list(da.keys()) for var in variables: - try: + try: #LES variables in 2D ecart_min = float(da2[var][:,:nk-JPVEXT].min())-float(da[var][:,:nk-JPVEXT].min()) ecart_moy = float(da2[var][:,:nk-JPVEXT].mean())-float(da[var][:,:nk-JPVEXT].mean()) ecart_max = float(da2[var][:,:nk-JPVEXT].max())-float(da[var][:,:nk-JPVEXT].max()) @@ -91,7 +95,16 @@ def compareTSERIESFiles(file_user, file_ref): status += 1 print(var, ecart_min, ecart_moy, ecart_max) except: - pass + try: # Sations or Budgets variables (Budget box without HALO points) + ecart_min = float(da2[var][:].min())-float(da[var][:].min()) + ecart_moy = float(da2[var][:].mean())-float(da[var][:].mean()) + ecart_max = float(da2[var][:].max())-float(da[var][:].max()) + if (abs(ecart_min) >=tol_ad or abs(ecart_moy) >=tol_ad or abs(ecart_max) >=tol_ad): + status += 1 + print(grp, var, ecart_min, ecart_moy, ecart_max) + except: + pass + except: pass return status