-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
How to indicate multiple SENSOR or PARAMETER #81
Comments
This issue is somewhat related to R03 and R25:
When a float carries multiple sensors of the same type and thus generate multiple values for the same parameter, the current practice is to indicate the additional sensors/parameters by placing an integer "n" at the end of the char string. For example, if a float carries three oxygen sensors, then the three parameters are DOXY, DOXY2, DOXY3.
This practice is problematic when the char string ends in a numeral, e.g. DOWN_IRRADIANCE412.
What are the possible solutions? Many old files have already been written with the old practice.
When the parameter string ends with a numeral, e.g., BBP<nnn>, then the integer "n" at the end is separated by an underscore. E.g. BBP700 for the first and BBP700_2 for a second BBP700 parameter.
|
Examples are CSIRO floats 1901348 and 5905165/5905395 with both ECO_BB3 and MCOMS_FLBBCD sensors. Each sensor has a BBP700 channel.
|
FYI, this issue is a duplicate of #115 @HCBScienceProducts' underscore trick works, I think, as long as we agree to never ever make a SENSOR (sensor type) that ends in _<nnn>, i.e., the _<nnn> suffix is reserved for identical sensor instance nnn >= 2. |
@HCBScienceProducts should this reccomendation (for duplicate SENSOR) be added to the WIP manual, if not there already? @mscanderbeg Otherwise, the issue can be closed |
With full acknowledgment that what I'm about to suggest could have retroactive consequences for all previous parameters that didn't end with a numeral, for consistency of implementation going forward the proposal could be to always use an underscore to separate additional sensors, e.g. |
I agree with @richardsc. I prefer Clark's solution that from now on, going forward, that the new naming convention is to always use an underscore to separate additional sensors. Old files that contain the old naming convention (without the underscore) can remain on the GDACs, but new files should use the new naming convention from now on. |
I completely agree with @richardsc. Currently, in the proposed JSON metadata schema,NVS controlled vocabulary terms (including those for SENSOR or PARAMETER) are specifed by SDN URI, e.g., SDN::R25:CTD_PRES or SDN:R03::PRES. Parsing and validating a controlled terms with repeated SENSORS or PARAMETERS becomes problematic. when there are multiple instances Imagine a float deployed with both MCOMS and RBR Tridente FLBBCD sensors with BBP532. In the current scheme we would have:
To properly validate the second sensor or paremater's controlled term for sensor or parameter, we need to
@richardsc propsal would make it a bit easier, assuming there is NEVER EVER an NVS controlled term that ends in _N where N=2,3,4,5,...
This is still problematic. Many R25 and R03 entries have an underscore, so the parsing rule has to look for a final underscore followed by a (single?) digit, e.g., a messy regular expression match* with (in this case) the first capture group capturing the controlled term and the fourth capture group capturing the instance number :
I propose something easier. We use a double underscore __N that easily and unambiguously delimits the NVS controlled term (SDN::R25BACKSCATTERINGMETER_BBP532, SDN:R03::BETA_BACKSCATTERING700) from the instance number (N). So I can simply look for a double underscore. If no double underscore, the NVS term is ready to go:
If double underscore is found, then parse all to the left as the NVS controlled term and all to the right as the instance number
Comments?
|
@SBS-EREHM: Please check on the previous posts. The current scheme is to add an underscore if the name ends in a numeral, so your given examples aren't correct. The current practice is that:
(to be agreed on or modified by the current discussion) Parsing the current practice is (unambiguously) feasible: By starting from the back :-)
This parsing implicitly assumes for the current practice that:
Number (1.) is presently true. Number (2.) seems a reasonable assumption to me. @apswong: While I see the merit of @richardsc's suggestion to simplify the above sketched decision tree by always adding a single underscore, I would prefer a solution that gives a consistent Argo data set all over. Not one that has different practices for different floats in time. I also want to remind that there are CSIRO floats 1901348 and 5905165/5905395 with both ECO_BB3 and MCOMS_FLBBCD sensors. Each sensor has a BBP700 channel. To have an example of how things look like (and work like) at present. Examples from the current 1901348_meta.nc file (highlights in bold are by me):
and correspondingly
(There's a cookie to win for the first one to find the one entry that's off in the 1901348 meta entries ;-) ) |
PARAMETER_SENSOR = I want the cookie, So on my side, I'd be in favour to formalize and keep the current practice as i am not really happy to modify the existing file. |
Here is the current rule documented in Argo user's manual §3.3.1 Parameters from duplicate sensors.
Do I replace that chapter with:
|
Yes, thanks Thierry |
@tcarval @catsch The option suggested by @richardsc above (to always add an underscore) should be presented and discussed at the ADMT meeting. We can then record whatever the agreed option is in the Users Manual. Option 1: Always add an underscore |
Richard's option to always add an underscore is for sure the best. But it implies a reprocessing all floats having duplicate sensors, that is not a small effort. |
Yes I think that the clear benefits of changing the way it is working now should be highlighted in the discussion (because it means some reprocessing), |
ADMT-25 decision : Option 1: Always add an underscore
|
|
The reprocessing of DAC files should include meta files where SENSOR information is recorded. |
This issue is somewhat related to R03 and R25:
When a float carries multiple sensors of the same type and thus generate multiple values for the same parameter, the current practice is to indicate the additional sensors/parameters by placing an integer "n" at the end of the char string. For example, if a float carries three oxygen sensors, then the three parameters are DOXY, DOXY2, DOXY3.
This practice is problematic when the char string ends in a numeral, e.g. DOWN_IRRADIANCE412.
What are the possible solutions? Many old files have already been written with the old practice.
The text was updated successfully, but these errors were encountered: