formats.tex 5.91 KB
 Uwe Schulzweida committed May 11, 2006 1 2 Every input and output file is a collection of 2D or 3D variables over an unlimited number of time steps.  Uwe Schulzweida committed Mar 03, 2006 3   Uwe Schulzweida committed Jun 02, 2006 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 \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. \CDI does not support the full GRIB standard. The following data representation and level types are implemented: \begin{itemize} \item Latitude/Longitude Grid \item Gaussian Latitude/Longitude Grid \item Spherical Harmonic Coefficients \item Icosahedral-hexagonal GME Grid \end{itemize} \begin{itemize} \item Surface level \item Isobaric level \item Height above ground \item Hybrid level %\item Layer between two hybrid levels \item Depth below land surface %\item Layer between two depths below land surface \item Depth below sea level \end{itemize} %0 Latitude/Longitude Grid %4 Gaussian Latitude/Longitude Grid %50 Spherical Harmonic Coefficients %192 Icosahedral-hexagonal GME Grid % %1 Surface level %100 Isobaric level %103 fixed height level %105 Height above ground %109 Hybrid level %110 Layer between two hybrid levels %111 Depth below land surface %112 Layer between two depths below land surface %160 Depth below sea level  Uwe Schulzweida committed Mar 03, 2006 61   Uwe Schulzweida committed May 11, 2006 62   Uwe Schulzweida committed May 24, 2006 63 \section{NetCDF}  Uwe Schulzweida committed Mar 03, 2006 64   Uwe Schulzweida committed May 24, 2006 65 \htmlref{NetCDF}{NetCDF} (Network Common Data Form) is an interface for array-oriented data  Uwe Schulzweida committed May 11, 2006 66 67 68 69 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.  Uwe Schulzweida committed May 12, 2006 70   Uwe Schulzweida committed Jun 02, 2006 71 \CDI supports only 2D, 3D and 4D arrays and the attributes should follow the  Uwe Schulzweida committed May 11, 2006 72 73 \href{http://ftp.unidata.ucar.edu/software/netcdf/docs/conventions.html} {GDT, COARDS or CF Conventions}.  Uwe Schulzweida committed May 25, 2006 74 75 76 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}).  Uwe Schulzweida committed May 11, 2006 77   Uwe Schulzweida committed Jun 02, 2006 78 %\subsection{ncdap}  Uwe Schulzweida committed May 11, 2006 79 80   Uwe Schulzweida committed Mar 03, 2006 81 82 \section{SERVICE}  Uwe Schulzweida committed May 11, 2006 83 84 85 86 87 88 89 90 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 committed May 24, 2006 91 SERVICE record with an accuracy of 4 bytes:  Uwe Schulzweida committed May 11, 2006 92 93  \begin{lstlisting}[backgroundcolor=\color{zebg}, basicstyle=\footnotesize]  Uwe Schulzweida committed May 12, 2006 94  INTEGER*4 icode,ilevel,idate,itime,nlon,nlat,idispo1,idispo2  Uwe Schulzweida committed May 11, 2006 95  REAL*4 field(mlon,mlat)  Uwe Schulzweida committed May 12, 2006 96 97  ... READ(unit) icode,ilevel,idate,itime,nlon,nlat,idispo1,idispo2  Uwe Schulzweida committed May 11, 2006 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112  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 committed May 25, 2006 113 114 \item[{\tt idispo1}] For the users disposal (Not used in \CDI) \item[{\tt idispo2}] For the users disposal (Not used in \CDI)  Uwe Schulzweida committed May 11, 2006 115 116 117 118 \end{deflist} \end{minipage}  Uwe Schulzweida committed Mar 03, 2006 119 120 \section{EXTRA}  Uwe Schulzweida committed May 11, 2006 121 122 123 124 125 126 127 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 committed May 24, 2006 128 EXTRA record with an accuracy of 4 bytes:  Uwe Schulzweida committed May 11, 2006 129 130  \begin{lstlisting}[backgroundcolor=\color{zebg}, basicstyle=\footnotesize]  Uwe Schulzweida committed May 12, 2006 131  INTEGER*4 idate,icode,ilevel,nsize  Uwe Schulzweida committed May 11, 2006 132  REAL*4 field(msize)  Uwe Schulzweida committed May 12, 2006 133 134  ... READ(unit) idate,icode,ilevel,nsize  Uwe Schulzweida committed May 11, 2006 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151  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 committed Mar 03, 2006 152 \section{IEG}  Uwe Schulzweida committed May 11, 2006 153   Uwe Schulzweida committed May 12, 2006 154 IEG is the standard binary output format of the regional model \htmlref{REMO}{REMO}.  Uwe Schulzweida committed May 11, 2006 155 It is simple an unpacked GRIB format. The product and grid  Uwe Schulzweida committed May 12, 2006 156 157 description section are coded with 4 byte integer values and the data section can have 4 or 8 byte IEEE floating point values.  Uwe Schulzweida committed May 11, 2006 158 159 The header and the data section have the standard Fortran blocking for binary data records.  Uwe Schulzweida committed May 25, 2006 160 161 162 163 164 165 \CDI supports only data on an rotated grid for the IEG format. %%% Local Variables: %%% mode: latex %%% TeX-master: t %%% End: