Run Eulerian RMS#

Velocity metrics package illustration: Run Eulerian RMS#
Agulhas, BFN-QG#
Authors: Datlas Copyright: 2024 Datlas License: MIT
Agulhas: BFNQG currents maps
Agulhas: BFNQG currents maps
The notebook aims to illustrate how to run the velocity metrics. Here, the example uses surface current maps produced by the BFN-QG in the Agulhas region.
The notebook aims to illustrate how to run the velocity metrics. Here, the example uses surface current maps produced by the BFN-QG in the Agulhas region.
[1]:
import velocity_metrics.utils.constant as const
import velocity_metrics.eulerian.eulerian_drifters as eulerian
[2]:
import datetime
import sys
from IPython.display import display, Markdown
import matplotlib.pyplot as plt
import cartopy
import warnings
warnings.filterwarnings("ignore")
sys.path.append('../')
from src import utils
Parameters#
Input directories#
[3]:
input_dict = '../dc_data/DC_example_BFNQG_Agulhas/dictionnaries/'
input_drifter = '../dc_data/drifter/'
Output directory#
[4]:
outputdir = '../results/metrics_illustration/'
Evaluated maps parameters#
[5]:
path_dict_product = input_dict+'data_type_metric_illustration_bfnqg.json'
depth = 0
Region parameters#
[6]:
path_dict_region = input_dict+'region_metric_illustration_Agulhas.json'
Drifter parameters#
[7]:
drifter_list = [input_drifter+'Drifters_AOML_region_T1_00m_20190101T000000Z_20200101T000000Z.pyo.gz']
first_date = datetime.datetime.strptime('20190101T000000Z', const.FMT)
last_date = datetime.datetime.strptime('20190201T000000Z', const.FMT)
1. Eulerian RMS computation#
[8]:
eulerian.run(drifter_list, path_dict_product,
first_date=first_date, last_date=last_date,
region=path_dict_region, sdepth=1, output_dir=outputdir)
Percent: [#############################-] 96.77%, ,
Compute and save statistics in ../results/metrics_illustration/ directory
2. Eulerian RMS array outputs (Mean and std)#
[9]:
list_dict = [{'type_stat':'Mean','path':outputdir+'Eulerian_RMS_BFNQG1.pyo','name':'BFN-QG'}]
utils.DictTable(list_dict)
[9]:
| Mean | Norm Quadratic Error (%) | Norm Correlation | Norm Explained Variance (%) | Norm RMSD | Number of Points |
| BFN-QG | 38.848 | 0.698 | 61.360 | 0.317 | 2890.000 |
[10]:
list_dict = [{'type_stat':'STD','path':outputdir+'Eulerian_STD_BFNQG1.pyo','name':'BFN-QG'}]
utils.DictTable(list_dict,['Direction difference', 'Number of Points'])
[10]:
| STD | Direction difference | Number of Points |
| BFN-QG | 45.014 | 2890.000 |
[11]:
list_eulerian_pickles = [outputdir+'Eulerian_BINNED_BFNQG1.pyo']
list_names = ['BFN-QG illustration']
[12]:
listvar = ('RMSD', 'Correlation', 'Explained Variance (%)', 'Quadratic Error (%)')
dic_p = {'RMSD': {'vmin': 0.1, 'vmax': 0.4, 'cmap': 'YlGnBu_r'},
'STD': {'vmin': 0.1, 'vmax': 0.4, 'cmap': 'YlGnBu'},
'Correlation': {'vmin': 0.5, 'vmax': 0.9, 'cmap': 'YlGnBu'},
'Explained Variance (%)': {'vmin': 40, 'vmax': 80, 'cmap': 'YlGnBu'},
'Quadratic Error (%)': {'vmin': 40, 'vmax': 80, 'cmap': 'YlGnBu_r'}
}
proj = cartopy.crs.PlateCarree()
ind = 0
var = listvar[ind]
for var in listvar:
print('\n')
display(Markdown(f'\n<br><center><b>Results for diagnostic {var}</b></center>'))
for eulerian_pickle, name in zip(list_eulerian_pickles, list_names):
display(Markdown(f'<b>{name}<b>'))
fig = eulerian.plot_bin(eulerian_pickle, outputdir, var, #box=[-5, 11, 35, 43],
vmin=dic_p[var]['vmin'],
vmax=dic_p[var]['vmax'],
cmap=dic_p[var]['cmap'],
proj=proj)
plt.show()
Results for diagnostic RMSD
BFN-QG illustration
Results for diagnostic Correlation
BFN-QG illustration
Results for diagnostic Explained Variance (%)
BFN-QG illustration
Results for diagnostic Quadratic Error (%)
BFN-QG illustration
[ ]: