Skip to content

Best practices for missing values (aka _FillValues) within VLENs? #1011

@czender

Description

@czender

Does Unidata have guidelines to represent missing values within
VLENs, rather than the VLENs themselves?
My understanding is that VLEN _FillValues must themselves be VLENs.
This is fine. I want to understand the best practices for indicating
and treating missing values within each VLEN ragged array.
Here I use _FillValue for the attribute name, and "missing value"
for values to "ignore" within a VLEN.

The semantics are confusing. I hope my description is clear.
As I see it, VLENs are incomplete without a well-understood way of
specifying a "missing value" for elements within the VLEN.
Hopefully this is well-trod ground and I can learn from previous
internal Unidata discussions on this topic. Otherwise I can revise
this and post to the netCDF group for discussion.

There are at least three options:

  1. Treat element values that equal the base-type NC_FILL_* as missing.
    This allows a disconnect between the _FillValue (a VLEN) and the
    value treated as "missing" for data within a VLEN.
    This means NC_FILL_* for the VLEN base type is always missing,
    regardless of whether the user wants that. It prevents users from
    assigning a custom value for missing data within a VLEN.
  2. Treat the first element of the VLEN _FillValue as missing.
    This connects the VLEN _FillValue to the "missing value" for
    elements within a VLEN. The user controls _FillValue, and can set
    it to any desired value, e.g., _FillValue={-999.0}.
  3. Use _FillValue for the VLEN, and missing_value for elements within
    the VLEN. Both are independently configurable.
  4. Other/Combinations of the above.

Recommendations?

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions