Advances in the NetCDF Data Model, Format, and Software - Unidata

Advances in the NetCDF Data Model, Format, and Software - Unidata Advances in the NetCDF Data Model, Format, and Software - Unidata

unidata.ucar.edu
from unidata.ucar.edu More from this publisher
22.10.2014 Views

The netCDF-4 enhanced data model A file has a top-level unnamed group. Each group may contain one or more named subgroups, user-defined types, variables, dimensions, and attributes. Variables also have attributes. Variables may share dimensions, indicating a common grid. One or more dimensions may be of unlimited length. 0..* Attribute name: String type: DataType value: type[ ] 0..* Group name: String 0..* File 1..* Variable 0..* name: String shape: Dimension[ ] type: DataType values: type[ … ] 0..* Dimension name: String length: int 0..* 0..* UserDefinedType typename: String Enum Opaque Compound VariableLength DataType PrimitiveType char byte short int float double unsigned byte unsigned short unsigned int int64 unsigned int64 string Variables and attributes have one of twelve primitive data types or one of four user-defined types.

NetCDF enhanced data model Strengths On the other hand Simpler than HDF5, with similar representational power Adds shared dimensions to HDF5 data model Continues support for existing data, software, and conventions Eliminates netCDF classic model limitations Provides nested structures: hierarchical groups, recursive data types Independent features permit incremental adaptation, adoption More complex than classic data model More effort required to develop general tools and applications Not yet widely adopted Hence, no comprehensive best practices and conventions yet

The netCDF-4 enhanced data model<br />

A file has a top-level unnamed group. Each group may conta<strong>in</strong> one or more named<br />

subgroups, user-def<strong>in</strong>ed types, variables, dimensions, <strong>and</strong> attributes. Variables also<br />

have attributes. Variables may share dimensions, <strong>in</strong>dicat<strong>in</strong>g a common grid. One<br />

or more dimensions may be of unlimited length.<br />

0..*<br />

Attribute<br />

name: Str<strong>in</strong>g<br />

type: <strong>Data</strong>Type<br />

value: type[ ]<br />

0..*<br />

Group<br />

name: Str<strong>in</strong>g<br />

0..*<br />

File<br />

1..*<br />

Variable<br />

0..*<br />

name: Str<strong>in</strong>g<br />

shape: Dimension[ ]<br />

type: <strong>Data</strong>Type<br />

values: type[ … ]<br />

0..*<br />

Dimension<br />

name: Str<strong>in</strong>g<br />

length: <strong>in</strong>t<br />

0..*<br />

0..*<br />

UserDef<strong>in</strong>edType<br />

typename: Str<strong>in</strong>g<br />

Enum<br />

Opaque<br />

Compound<br />

VariableLength<br />

<strong>Data</strong>Type<br />

PrimitiveType<br />

char<br />

byte<br />

short<br />

<strong>in</strong>t<br />

float<br />

double<br />

unsigned byte<br />

unsigned short<br />

unsigned <strong>in</strong>t<br />

<strong>in</strong>t64<br />

unsigned <strong>in</strong>t64<br />

str<strong>in</strong>g<br />

Variables <strong>and</strong> attributes have one of twelve primitive<br />

data types or one of four user-def<strong>in</strong>ed types.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!