formats.tex 6.39 KB
Newer Older
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1
2
%Every input and output file is a collection of 2D or 3D variables
%over an unlimited number of time steps.
Uwe Schulzweida's avatar
Uwe Schulzweida committed
3

4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
\section{GRIB edition 1}

\htmlref{GRIB}{GRIB} (GRIdded Binary) is a standard format designed by the
World Meteorological Organization (WMO) to support the efficient 
transmission and storage of gridded meteorological data.

A GRIB record consists of a series of header sections, followed by
a bitstream of packed data representing one horizontal grid of data
values. The header sections are intended to fully describe the data
included in the bitstream, specifying information such as the
parameter, units, and precision of the data, the grid system and
level type on which the data is provided, and the date and time
for which the data are valid.

Non-numeric descriptors are enumerated in tables, such that a 1-byte
code in a header section refers to a unique description.
The WMO provides a standard set of enumerated parameter names and
level types, but the standard also allows for the definition
of locally used parameters and geometries. Any activity
that generates and distributes GRIB records must also make
their locally defined GRIB tables available to users.

Uwe Schulzweida's avatar
Uwe Schulzweida committed
26
27
28
29
30
31
{\CDI} does not support the full GRIB standard. The following
data representation and level types are implemented: \\

\begin{tabular}{rl}
\textbf{Grid type} &  \\
   0  & Latitude/longitude grid \\
Uwe Schulzweida's avatar
Uwe Schulzweida committed
32
   3  & Lambert conformal grid \\
Uwe Schulzweida's avatar
Uwe Schulzweida committed
33
34
35
36
37
38
39
40
41
42
43
44
45
   4  & Gaussian latitude/longitude grid \\
  10  & Rotated latitude/longitude grid \\
  50  & Spherical Harmonic Coefficients \\
 192  & Icosahedral-hexagonal GME grid \\
\end{tabular}


\begin{tabular}{rl}
\textbf{Level type} & \\
   1  & Surface level \\
 100  & Isobaric level \\
 103  & Altitude above mean sea level \\
 105  & Height above ground \\
Uwe Schulzweida's avatar
Uwe Schulzweida committed
46
 107  & Sigma level \\
Uwe Schulzweida's avatar
Uwe Schulzweida committed
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
 109  & Hybrid level      \\
 110  & Layer between two hybrid levels   \\
 111  & Depth below land surface    \\
 112  & Layer between two depths below land surface   \\   
 113  & Isentropic (theta) level \\
 160  & Depth below sea level    \\
\end{tabular}

%\begin{itemize}
%\item   0 Latitude/longitude grid
%\item   4 Gaussian latitude/longitude grid
%\item  10 Rotated latitude/longitude grid
%\item  50 Spherical Harmonic Coefficients
%\item 192 Icosahedral-hexagonal GME grid
%\end{itemize}

%\begin{itemize}
%\item   1 Surface level
%\item 100 Isobaric level
%\item 103 Altitude above mean sea level
%\item 105 Height above ground
%\item 109 Hybrid level     
%\item 110 Layer between two hybrid levels  
%\item 111 Depth below land surface   
%\item 112 Layer between two depths below land surface     
%\item 113 Isentropic (theta) level
%\item 160 Depth below sea level   
%\end{itemize}
Uwe Schulzweida's avatar
Uwe Schulzweida committed
75

76

Uwe Schulzweida's avatar
Uwe Schulzweida committed
77
\section{NetCDF}
Uwe Schulzweida's avatar
Uwe Schulzweida committed
78

Uwe Schulzweida's avatar
Uwe Schulzweida committed
79
\htmlref{NetCDF}{NetCDF} (Network Common Data Form) is an interface for array-oriented data
80
81
82
83
access and a library that provides an implementation of the interface.
The netCDF library also defines a machine-independent format for 
representing scientific data. Together, the interface, library, and 
format support the creation, access, and sharing of scientific data.
84

Uwe Schulzweida's avatar
Uwe Schulzweida committed
85
{\CDI} supports only 2D, 3D and 4D arrays and the attributes should follow the
86
87
\href{http://ftp.unidata.ucar.edu/software/netcdf/docs/conventions.html}
     {GDT, COARDS or CF Conventions}.
Uwe Schulzweida's avatar
Uwe Schulzweida committed
88
89
90
NetCDF is an external library and not part of {\CDI}. To use netCDF with
{\CDI} the netCDF library must be installed before the configuration
of the {\CDI} library (see \htmlref{Build}{build}).
91

92
%\subsection{ncdap}
93
94


Uwe Schulzweida's avatar
Uwe Schulzweida committed
95
96
\section{SERVICE}

97
98
99
100
101
102
103
104
SERVICE is the binary exchange format of the atmospheric general
circulation model \htmlref{ECHAM}{ECHAM}.
It has a header section with 8 integer values followed by the data section.
The header and the data section have the standard Fortran blocking
for binary data records.
A SERVICE record can have an accuracy of 4 or 8 bytes and 
the byteorder can be little or big endian.
The following Fortran code example can be used to read a 
Uwe Schulzweida's avatar
Uwe Schulzweida committed
105
SERVICE record with an accuracy of 4 bytes:
106
107

\begin{lstlisting}[backgroundcolor=\color{zebg}, basicstyle=\footnotesize]
108
   INTEGER*4 icode,ilevel,idate,itime,nlon,nlat,idispo1,idispo2
109
   REAL*4 field(mlon,mlat)
110
111
      ...
   READ(unit) icode,ilevel,idate,itime,nlon,nlat,idispo1,idispo2
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
   READ(unit) ((field(ilon,ilat), ilon=1,nlon), ilat=1,nlat)
\end{lstlisting}

The constants {\tt mlon} and {\tt mlat} must be greater or equal than {\tt nlon} and {\tt nlat}.
The meaning of the variables are:

\vspace*{3mm}
\hspace*{8mm}\begin{minipage}{10cm}
\begin{deflist}{{\tt idispo2 \ \ }}
\item[{\tt icode}]    The code number
\item[{\tt ilevel}]   The level
\item[{\tt idate}]    The date as YYYYMMDD
\item[{\tt itime}]    The time as HHMM
\item[{\tt nlon}]     The number of longitudes
\item[{\tt nlat}]     The number of latitides
Uwe Schulzweida's avatar
Uwe Schulzweida committed
127
128
\item[{\tt idispo1}]  For the users disposal (Not used in {\CDI})
\item[{\tt idispo2}]  For the users disposal (Not used in {\CDI})
129
130
131
132
\end{deflist}
\end{minipage}


Uwe Schulzweida's avatar
Uwe Schulzweida committed
133
134
\section{EXTRA}

135
136
137
138
139
140
141
EXTRA is the standard binary output format of the ocean model \htmlref{MPIOM}{MPIOM}.
It has a header section with 4 integer values followed by the data section.
The header and the data section have the standard Fortran blocking
for binary data records.
An EXTRA record can have an accuracy of 4 or 8 bytes and 
the byteorder can be little or big endian.
The following Fortran code example can be used to read an
Uwe Schulzweida's avatar
Uwe Schulzweida committed
142
EXTRA record with an accuracy of 4 bytes:
143
144

\begin{lstlisting}[backgroundcolor=\color{zebg}, basicstyle=\footnotesize]
145
   INTEGER*4 idate,icode,ilevel,nsize
146
   REAL*4 field(msize)
147
148
      ...
   READ(unit) idate,icode,ilevel,nsize
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
   READ(unit) (field(isize),isize=1,nsize)
\end{lstlisting}

The constant {\tt msize} must be greater or equal than {\tt nsize}.
The meaning of the variables are:

\vspace*{3mm}
\hspace*{8mm}\begin{minipage}{10cm}
\begin{deflist}{{\tt idispo2 \ \ }}
\item[{\tt idate}]    The date as YYYYMMDD
\item[{\tt icode}]    The code number
\item[{\tt ilevel}]   The level
\item[{\tt nsize}]    The size of the field
\end{deflist}
\end{minipage}


Uwe Schulzweida's avatar
Uwe Schulzweida committed
166
\section{IEG}
167

168
IEG is the standard binary output format of the regional model \htmlref{REMO}{REMO}.
169
It is simple an unpacked GRIB format. The product and grid
170
171
description section are coded with 4 byte integer values and the
data section can have 4 or 8 byte IEEE floating point values.
172
173
The header and the data section have the standard Fortran blocking
for binary data records.
Uwe Schulzweida's avatar
Uwe Schulzweida committed
174
{\CDI} supports only data on an rotated grid for the IEG format.
Uwe Schulzweida's avatar
Uwe Schulzweida committed
175
176
177
178
179

%%% Local Variables: 
%%% mode: latex
%%% TeX-master: t
%%% End: