euroargodev / User-Acceptance-Test-Python-version-of-the-OWC-tool

BODC Argo team with consultation with other Argo partners took initiative to convert the OWC software from Matlab to Python. This initiative has been undertaken based on the output from the international survey about the methods and tools used in DMQC core data. The following repository is dedicated for User Acceptance Testing.
1 stars 0 forks source link

Corrections to errorbars in plot with salinities at specific theta levels #30

Closed kamwal closed 4 years ago

kamwal commented 4 years ago

In the Python plot presenting the time series of salinity from float and mapped salinity at specific theta level, I have found few elements that can be corrected:

Upper plot - Python; Lower plot - Matlab

image

Reference data: CTD_for_DMQC_2019V01 WMO boxes: wmo_boxes_ctd.mat Cal series: breaks = [] max_breaks = 4 # 0 for linear trend, -1 for offset calseries = np.ones((1, no_profiles)).flatten() # example for splitting time series at profile 33 # calseries = np.concatenate((np.ones((1, 33)), 2 * np.ones(1,no_profiles - 33))) calib_profile_no = profile_no use_percent_gt = 0.5 use_theta_lt =0 use_theta_gt =0 use_pres_lt =0 use_pres_gt = 0

kamwal commented 4 years ago

I am including data to this float 2901102.zip

matdon17 commented 4 years ago

Within BODC, we have discussed whether the green error bar should be discontinuous or not, despite what is done in the Matlab version.

The argument in favour of it being discontinuous is that there is no calculated error for these profiles, but the display of the interpolated error bar is visually misleading. The result is the meaning of this element of the plot is not entirely obvious, especially to people who are not DMQC operators. This is particularly true as uncalibrated float and mapped salinity are both discontinuous.

So the question posed is: do we stick with the current discontinuous error bar in OWC Python were there is no data for a profile (as displayed above), or change it to be continuous to match the Matlab version?

apswong commented 4 years ago

The argument in favour of it being discontinuous is that there is no calculated error for these profiles

That is not entirely true - if no data is displayed on a deep isotherm, it usually means that profile does not go that deep, or the float has moved on to shallower or warmer regions. But as long as part of the profile goes into the least squares fit (from other isotherms that are not displayed), a fit and an error will be computed for that profile.

How you choose to display them in pyowc is another matter, and I don't have an opinion on that.

matdon17 commented 4 years ago

Hi @apswong - apologies I was somewhat inaccurate in what I said, and meant to indicate for profiles were a particular isotherm is not present, then there would be no calculated error to display in that instance.

Thanks for the input on the display - knowing the absence of an opinion is as useful as knowing if there is a strong feeling in either direction.

matdon17 commented 4 years ago

Further views welcome, but initial decision is to keep the discontinuous error bar as shown at the beginning of this ticket. Issue is likely to be tackled in near future.

edsmall-bodc commented 4 years ago

Fixed layering issue here: https://github.com/euroargodev/argodmqc_owc/pull/42

kamwal commented 4 years ago

After discussion with @matdon17, we agreed that at the moment the green errorbar should be rather continuous.

The first reason for that is to reproduce the exact plot which is generated in Matlab. The way how this plot is created right now is sufficient to use by other DMQC operators. Moreover, there could be many other ways to display/improve that plot. The final decision of changes and improvements to this plot can be further undertaken after releasing the code to the wider group of DMQC operators.

The second reason convincing us to use continuous errorbar is that for some single profiles not connected with other profiles, the error bar is almost overlapped (e.g. profile 61,115) or entirely overlapped (e.g. profile 71) by errorbar from mapped salinity. That makes the discontinuous errorbar even more difficult to read.

edsmall-bodc commented 4 years ago

Continuous bar and rescaled y axis: https://github.com/euroargodev/argodmqc_owc/pull/42