#166: Add new integer types to CF
-----------------------------+-----------------------------------
Reporter: zender | Owner: cf-conventions@…
Type: enhancement | Status: new
Priority: medium | Milestone:
Component: cf-conventions | Version:
Resolution: | Keywords: integer unsigned CDF5
-----------------------------+-----------------------------------
Old description:
> This ticket would merge support for new integer types into CF 1.8.
> CF explicitly supports types char, byte, short, int, float, and double.
> The five "new" integer types it could support are:
> unsigned byte, unsigned short, unsigned int, int64, and unsigned int64.
> These new types are in netCDF3 (in the CDF5 encoding released in netCDF
> v. 4.4.0) and in netCDF4.
>
> About 10 people deliberated on the CF list how best to do this.
> The original draft proposal included wording to clarify the treatment
> of unsigned integers for backward compatibility with CDF1 and CDF2,
> and to clarity that and which integer types are interchangable.
> It seems that these last two issues will require separate tickets,
> since their implementation received more unresolved debate.
> The addition of new types itself was not controversial and achieved
> consensus. Thus this shortened proposal, suggested by Dave Allured,
> that includes new sub-sub-sections intended to aid the discussion of
> the unresolved issues mentioned above.
>
> The current CF 1.8 draft reads (Section 2.2):
>
> {{{
> 2.2. Data Types
>
> The netCDF data types char, byte, short, int, float or real, and double
> are
> all acceptable. The char type is not intended for numeric data. One byte
> numeric data should be stored using the byte data type. All integer types
> are treated by the netCDF interface as signed. It is possible to treat
> the
> byte type as unsigned by using the NUG convention of indicating the
> unsigned range using the valid_min, valid_max, or valid_range attributes.
>
> NetCDF does not support a character string type, so these must be
> represented as character arrays. ...
> [Remainder of second paragraph on strings, not to be changed]
>
> }}}
>
> This ticket replaces that text with:
>
> {{{
> 2.2. Data Types
>
> The netCDF data types char, byte, unsigned byte, short, unsigned short,
> int, unsigned int, int64, unsigned int64, float or real, and double are
> all
> acceptable. The char type is not intended for numeric data. One byte
> numeric data should be stored using the byte or unsigned byte data types.
>
> 2.2.1 Unsigned Integers
>
> It is possible to treat the byte and short types as unsigned by using the
> NUG
> convention of indicating the unsigned range using the valid_min,
> valid_max,
> or valid_range attributes. This usage is deprecated except when the
> version of netCDF being used does not support unsigned types.
>
> 2.2.2 Character Strings
>
> NetCDF Classic format does not support a character string type, so these
> must be represented as character arrays. ...
> [Remainder of former paragraph on strings, unchanged]
>
> }}}
New description:
This ticket would merge support for new integer types into CF 1.8.
CF explicitly supports types char, byte, short, int, float, and double.
The five "new" integer types it could support are:
unsigned byte, unsigned short, unsigned int, int64, and unsigned int64.
These new types are in netCDF3 (in the CDF5 encoding released in netCDF v.
4.4.0) and in netCDF4.
About 10 people deliberated on the CF list how best to do this.
The original draft proposal included wording to clarify the treatment
of unsigned integers for backward compatibility with CDF1 and CDF2,
and to clarity that and which integer types are interchangable.
It seems that these last two issues will require separate tickets,
since their implementation received more unresolved debate.
The addition of new types itself was not controversial and achieved
consensus. Thus this shortened proposal, suggested by Dave Allured,
that includes new sub-sub-sections intended to aid the discussion of
the unresolved issues mentioned above.
The current CF 1.8 draft reads (Section 2.2):
{{{
2.2. Data Types
The netCDF data types char, byte, short, int, float or real, and double
are
all acceptable. The char type is not intended for numeric data. One byte
numeric data should be stored using the byte data type. All integer types
are treated by the netCDF interface as signed. It is possible to treat the
byte type as unsigned by using the NUG convention of indicating the
unsigned range using the valid_min, valid_max, or valid_range attributes.
NetCDF does not support a character string type, so these must be
represented as character arrays. ...
[Remainder of second paragraph on strings, not to be changed]
}}}
This ticket replaces that text with:
{{{
2.2. Data Types
The netCDF data types char, byte, unsigned byte, short, unsigned short,
int, unsigned int, int64, unsigned int64, float or real, and double are
all
acceptable. The char type is not intended for numeric data. One byte
numeric data should be stored using the byte or unsigned byte data types.
2.2.1 Unsigned Integers
[Original wording, unchanged] It is possible to treat
the byte type as unsigned by using the NUG convention of
indicating the unsigned range using the valid_min,
valid_max, or valid_range attributes.
2.2.2 Character Strings
NetCDF Classic format does not support a character string type, so these
must be represented as character arrays. ...
[Remainder of former paragraph on strings, unchanged]
}}}
--
Comment (by zender):
Done. To maintain consensus on the primary purpose of this ticket, adding
new integer types, I think we must comply with Dave's suggestion to move
all discussion of, and any changes to, treatment of unsigned types in CDF1
and CDF2 to new ticket #167.
--
Ticket URL: <https://cf-trac.llnl.gov/trac/ticket/166#comment:12>
CF Metadata <http://cf-convention.github.io/>
CF Metadata