aodn / imos-toolbox

Graphical tool for QC'ing and NetCDF'ing oceanographic datasets
GNU General Public License v3.0
46 stars 31 forks source link

MATLAB Update towards R2020b & Runtime #703

Open ocehugo opened 3 years ago

ocehugo commented 3 years ago

We already reached a 2-year difference with recent/upstream MATLAB versions. Maybe time for an update!? I compiled a curated list of changes that matter for us below. Not listed are several bugfixes, related changes in toolboxes, and some updates to NetCDF library. There were some big changes in 2020, but important ones also happened in 2019.

The most exciting changes are in the R2019 version which would help immediately. The deeper introspection and function argument validation allowed in 2019b is particularly useful. R2020 also got some new things that may help in the long-run or in new features (or even help on the modernization of the UI from GUIDE to app-designer).

Did anyone had a go with 2020b? Any voices pro/against an update over the next quarters? Also, we got a case of graphical issues with 2019 within the UI during the workshop day. Please link here anything related to versions beyond 2018b so we can foresee what we will need to do.

R2019a:

R2019b:

R2020a:

R2020b:

sspagnol commented 3 years ago

We (AIMS) don't have an issue with updating to R2020b. And you can also add matlab upgraded netcdf support to v4.7.3. Now if only they had something like xarray.

anaredd commented 3 years ago

At SARDI we don't have any issues with upgrading to R2020b either. It looks useful

ocehugo commented 3 years ago

We (AIMS) don't have an issue with updating to R2020b. And you can also add matlab upgraded netcdf support to v4.7.3. Now if only they had something like xarray.

@sspagnol , It's not xarray, but with nc_flat you can access global attributes and variable attributes by name and with autocompletion :). Better than nested for loops with string (id) checks (picking).

At the same time I did nc_flat I tried a class to lazy-load variable content ala xarray, but matlab classes get/set methods inner workings required more hacking to work efficiently. The functional introspection abc().mymethod could be useful to materialise this and join with nc_flat into a more generic class.