# The NetCDF Classic Format Specification
> https://www.unidata.ucar.edu/software/netcdf/docs/file_format_specifications.html
To present the format more formally, we use a BNF grammar notation. In this notation:
+ Non-terminals (entities defined by grammar rules) are in lower case.
+ Terminals (atomic entities in terms of which the format specification is written) are in upper case, and are specified literally as US-ASCII characters within single-quote characters or are described with text between angle brackets (``<`` and ``>``).
+ Optional entities are enclosed between braces (``[`` and ``]``).
+ A sequence of zero or more occurrences of an entity is denoted by ``[entity ...]``.
+ A vertical line character (``|``) separates alternatives. Alternation has lower precedence than concatenation.
+ Comments follow ``//`` characters.
+ A single byte that is not a printable character is denoted using a hexadecimal number with the notation ``\xDD``, where each D is a hexadecimal digit.
+ A literal single-quote character is denoted by ``\'``, and a literal back-slash character is denoted by ``\``.
Following the grammar, a few additional notes are included to specify format characteristics that are impractical to capture in a BNF grammar, and to note some special cases for implementers. Comments in the grammar point to the notes and special cases, and help to clarify the intent of elements of the format.
## The Format in Detail
```
netcdf_file = header data
header = magic numrecs dim_list gatt_list var_list
magic = 'C' 'D' 'F' VERSION
VERSION = \x01 | // classic format
\x02 // 64-bit offset format
numrecs = NON_NEG | STREAMING // length of record dimension
dim_list = ABSENT | NC_DIMENSION nelems [dim ...]
gatt_list = att_list // global attributes
att_list = ABSENT | NC_ATTRIBUTE nelems [attr ...]
var_list = ABSENT | NC_VARIABLE nelems [var ...]
ABSENT = ZERO ZERO // Means list is not present
ZERO = \x00 \x00 \x00 \x00 // 32-bit zero
NC_DIMENSION = \x00 \x00 \x00 \x0A // tag for list of dimensions
NC_VARIABLE = \x00 \x00 \x00 \x0B // tag for list of variables
NC_ATTRIBUTE = \x00 \x00 \x00 \x0C // tag for list of attributes
nelems = NON_NEG // number of elements in following sequence
dim = name dim_length
name = nelems namestring
// Names a dimension, variable, or attribute.
// Names should match the regular expression
// ([a-zA-Z0-9_]|{MUTF8})([^\x00-\x1F/\x7F-\xFF]|{MUTF8})*
// For other constraints, see "Note on names", below.
namestring = ID1 [IDN ...] padding
ID1 = alphanumeric | '_'
IDN = alphanumeric | special1 | special2
alphanumeric = lowercase | uppercase | numeric | MUTF8
lowercase = 'a'|'b'|'c'|'d'|'e'|'f'|'g'|'h'|'i'|'j'|'k'|'l'|'m'|
'n'|'o'|'p'|'q'|'r'|'s'|'t'|'u'|'v'|'w'|'x'|'y'|'z'
uppercase = 'A'|'B'|'C'|'D'|'E'|'F'|'G'|'H'|'I'|'J'|'K'|'L'|'M'|
'N'|'O'|'P'|'Q'|'R'|'S'|'T'|'U'|'V'|'W'|'X'|'Y'|'Z'
numeric = '0'|'1'|'2'|'3'|'4'|'5'|'6'|'7'|'8'|'9'
// special1 chars have traditionally been
// permitted in netCDF names.
special1 = '_'|'.'|'@'|'+'|'-'
// special2 chars are recently permitted in
// names (and require escaping in CDL).
// Note: '/' is not permitted.
special2 = ' ' | '!' | '"' | '#' | '$' | '' | '&' | '\'' |
'(' | ')' | '*' | ',' | ':' | ';' | '<' | '=' |
'>' | '?' | '[' | '\' | ']' | '^' | '‘’ | '{' |
'|' | '}' | '~'
MUTF8 = <multibyte UTF-8 encoded, NFC-normalized Unicode character>
dim_length = NON_NEG // If zero, this is the record dimension.
// There can be at most one record dimension.
attr = name nc_type nelems [values ...]
nc_type = NC_BYTE |
NC_CHAR |
NC_SHORT |
NC_INT |
NC_FLOAT |
NC_DOUBLE
var = name nelems [dimid ...] vatt_list nc_type vsize begin
// nelems is the dimensionality (rank) of the
// variable: 0 for scalar, 1 for vector, 2
// for matrix, ...
dimid = NON_NEG // Dimension ID (index into dim_list) for
// variable shape. We say this is a "record
// variable" if and only if the first
// dimension is the record dimension.
vatt_list = att_list // Variable-specific attributes
vsize = NON_NEG // Variable size. If not a record variable,
// the amount of space in bytes allocated to
// the variable's data. If a record variable,
// the amount of space per record. See "Note
// on vsize", below.
begin = OFFSET // Variable start location. The offset in
// bytes (seek index) in the file of the
// beginning of data for this variable.
data = non_recs recs
non_recs = [vardata ...] // The data for all non-record variables,
// stored contiguously for each variable, in
// the same order the variables occur in the
// header.
vardata = [values ...] // All data for a non-record variable, as a
// block of values of the same type as the
// variable, in row-major order (last
// dimension varying fastest).
recs = [record ...] // The data for all record variables are
// stored interleaved at the end of the
// file.
record = [varslab ...] // Each record consists of the n-th slab
// from each record variable, for example
// x[n,...], y[n,...], z[n,...] where the
// first index is the record number, which
// is the unlimited dimension index.
varslab = [values ...] // One record of data for a variable, a
// block of values all of the same type as
// the variable in row-major order (last
// index varying fastest).
values = bytes | chars | shorts | ints | floats | doubles
string = nelems [chars]
bytes = [BYTE ...] padding
chars = [CHAR ...] padding
shorts = [SHORT ...] padding
ints = [INT ...]
floats = [FLOAT ...]
doubles = [DOUBLE ...]
padding = <0, 1, 2, or 3 bytes to next 4-byte boundary>
// Header padding uses null (\x00) bytes. In
// data, padding uses variable's fill value.
// See "Note on padding", below, for a special
// case.
NON_NEG = <non-negative INT>
STREA
没有合适的资源?快使用搜索试试~ 我知道了~
VisualBasic for Scientific Computing.zip
共2000个文件
vb:816个
png:215个
settings:116个
需积分: 5 0 下载量 7 浏览量
2024-10-10
14:05:01
上传
评论
收藏 191.62MB ZIP 举报
温馨提示
VisualBasic for Scientific Computing.zip
资源推荐
资源详情
资源评论
收起资源包目录
VisualBasic for Scientific Computing.zip (2000个子文件)
Enviroment_GroupTrees.3mf 2.36MB
earth.3mf 813KB
airplane2.3mf 240KB
Torus.3mf 239KB
aircraft2.3mf 232KB
cupbarrel.3mf 200KB
Chameleon.3mf 167KB
WOW_rthas the Lich King1.3mf 151KB
letters.3mf 148KB
a_Dota_role.3mf 146KB
airplane1.3mf 143KB
cupcube.3mf 137KB
castle.3mf 133KB
bulldozer.3mf 126KB
Elise1.3mf 125KB
EVA1.3mf 121KB
cookiecutterlion.3mf 116KB
spookytree.3mf 114KB
giftbox.3mf 112KB
Low-poly+Trees.3mf 112KB
mug.3mf 111KB
Dota1-logo.3mf 110KB
aircraft3.3mf 102KB
Morgana1.3mf 101KB
Chogath1.3mf 100KB
WOW_warlock.3mf 99KB
Wedge.3mf 92KB
windmill.3mf 86KB
shuttle.3mf 84KB
Anivia1.3mf 76KB
trophybloom.3mf 74KB
Dragon1.3mf 69KB
jackolantern.3mf 67KB
Curve.3mf 59KB
keychain.3mf 52KB
aircraft1.3mf 43KB
Hexagon.3mf 43KB
house.3mf 39KB
Cylinder.3mf 35KB
Cone.3mf 30KB
buildingblocks.3mf 28KB
example.3mf 15KB
Tetrahedron.3mf 9KB
build.bat 4KB
DefaultTexture.bmp 109KB
ei.c 27KB
airy.c 26KB
sici.c 17KB
jv.c 17KB
shichi.c 17KB
pow.c 16KB
gamma.c 16KB
zetac.c 15KB
j0.c 14KB
fresnl.c 13KB
j1.c 13KB
ndtr.c 12KB
ndtri.c 11KB
polylog.c 11KB
i1.c 10KB
i0.c 10KB
dawsn.c 10KB
const.c 10KB
hyp2f1.c 9KB
sincos.c 9KB
sin.c 8KB
k0.c 8KB
k1.c 8KB
log2.c 7KB
hyperg.c 7KB
incbet.c 7KB
log.c 7KB
atan.c 7KB
asin.c 7KB
fac.c 7KB
floor.c 6KB
sindg.c 6KB
tan.c 6KB
log10.c 6KB
incbi.c 6KB
exp10.c 5KB
ellpk.c 5KB
fdtr.c 5KB
tandg.c 5KB
planck.c 5KB
rgamma.c 5KB
bdtr.c 5KB
kolmogorov.c 5KB
struve.c 5KB
ellpe.c 5KB
exp.c 5KB
kn.c 4KB
stdtr.c 4KB
spence.c 4KB
psi.c 4KB
isnan.c 4KB
igam.c 4KB
ellpj.c 4KB
acosh.c 4KB
atanh.c 4KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
Matlab仿真实验室
- 粉丝: 3w+
- 资源: 2405
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功