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:
- 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.
- 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}.
- Use
_FillValue for the VLEN, and missing_value for elements within
the VLEN. Both are independently configurable.
- Other/Combinations of the above.
Recommendations?
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
_FillValuefor 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:
NC_FILL_*as missing.This allows a disconnect between the
_FillValue(a VLEN) and thevalue 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.
_FillValueas missing.This connects the VLEN
_FillValueto the "missing value" forelements within a VLEN. The user controls
_FillValue, and can setit to any desired value, e.g.,
_FillValue={-999.0}._FillValuefor the VLEN, and missing_value for elements withinthe VLEN. Both are independently configurable.
Recommendations?