2.5.2. I/O API files

I/O API files are read and written by the I/O API library used by SMOKE and other Models-3 programs. A library is a set of routines that have been created and compiled for use by multiple programs. The I/O API library, in turn, is built upon yet another library called the NetCDF library. For this reason, I/O API files are also referred to as I/O API NetCDF files. More information on both of these libraries is available at the I/O API web site. Section 12.4, “Compiling SMOKE for UNIX” contains instructions for obtaining the I/O API and NetCDF libraries.

The I/O API files cannot be viewed with a text editor because they are binary files. These binary files use less disk space than ASCII files containing the same data. They also allow much more efficient input and output of the data, and the I/O API library provides many quality assurance (QA) features useful for all input and output (I/O), including I/O for emissions processing.

The basic I/O API file has a limitation of 120 variables per file. To overcome this, SMOKE uses a wrapper called the FileSetAPI that creates and manages multiple I/O API files when more than 120 variables are needed in a single I/O API dataset in SMOKE. For example, if the SMOKE speciation matrix requires 140 pollutant-to-species variables, SMOKE will open by default two standard I/O API files: one with 120 variables and one with 20 variables. This resulting “file set” will be treated by other SMOKE programs as a single file, which enables processing of any number of pollutants and species in a single run, despite the I/O API variable limitation.

Some I/O API files can be viewed by the Visualization Environment for Rich Data Interpretation (VERDI). In SMOKE, any gridded output file from the Smkmerge, Mrggrid, or Smk2emis programs can be viewed by VERDI.

In some cases, it can be helpful to directly view the contents of the I/O API files in text form. This provides a quick way to check grid settings, time period, or species names in the model-ready output files. By viewing the text version of the model-ready output files produced by SMOKE, you can easily confirm that the correct species have been created or that the emission units are correct. To convert the I/O API files to text, one can use a combination of the NetCDF-provided ncdump utility and UNIX commands. The ncdump utility is created when you compile the NetCDF library, or you can download it from the NetCDF web site. The command to convert the files to text format is:

ncdump <infile> | cut -c1-80 > <outfile>

Replace <infile> in the command above with your input I/O API file name, and <outfile> with your desired ACSII output file name. The output file contains all the applicable data stored in the I/O API file including grid information, time period, variable names, etc.