A simple approximation of a limited set of functions from the I/O API targeted at gridded atmospheric emissions QA in a netCDF container such as those created by SMOKE for CMAQ
I/O API is a programming interface used for storage and access primarily of meterological and atmospheric pollution data for CMAQ, WRF, SMOKE and other applications. I/O API is currently hosted by both GitHub and the CMAS center. It is maintained by Carlie J. Coats, Jr., Ph.D. This module is unofficial and has no connection to the CMAS center or the I/O API developers. This library is not considered 100% compatible with I/O API. Currently the fauxioapi library supports gridded hourly files and can read the grid description format file. Do not contact the I/O API author or developers about issues with this module or files generated by this module.
Python 3.5 or later is required. The library is tested with numpu 1.16 and netCDF4 1.2.9. Variations in module versions may introduce incompatibilities.
Installation may be done using Python setuptools. Simply run python3 setup.py install to begin the process.
import fauxioapi as io
Initialize grid variables from griddesc file: gridname = '12US2' grid_description = 'GRIDDESC.txt' grid = io.Grid(gridname, grid_description)
Open I/O API dataset for reading and read a variable: fn = 'input_data.ncf' with io.IODataset(fn) as iodf: var = iodf['NOX']
Open I/O API dataset for writing, set dimensions, write a variable, set attributes, and write the TFLAG: fn = 'output_data.ncf' with io.IODataset(fn, 'w') as iodf: iodf.set_dimensions(LAY=1, ROW=200, COL=200, VAR=1) iodf_var = iodf.create_variable('NOX', 'REAL', ('TSTEP','LAY','ROW','COL')) iodf_var[:] = np.zeros([25,1,200,200]) iodf.set_attributes('20200101', grid) iodf.write_TFLAG()