Source code for PseudoNetCDF.camxfiles.units

__all__ = ['get_chemparam_names', 'get_uamiv_units']

_camx_units = {
    'EMISSIONS ': {True: 'g/time', False: 'mol/time'},
    'AVERAGE   ': {True: 'micrograms/m**3', False: 'ppm'},
    'BOUNDARY  ': {True: 'micrograms/m**3', False: 'ppm'},
    'INSTANT   ': {True: 'micrograms/m**3', False: 'micromoles/m**3'},
    'IPR': {True: 'micrograms/m**3', False: 'micromoles/m**3'},
    'AIRQUALITY': {True: 'micrograms/m**3', False: 'ppm'},
    'DEPOSITION': {True: 'g/ha', False: 'mol/ha'},
}


[docs] def get_chemparam_names(chemparampath): inlines = open(chemparampath, 'r').readlines() startaero = None for li, myl in enumerate(inlines): if myl[:14] == " Gas Spec ": startgas = li + 1 if myl[:14] == " Aero Spec": endgas = li startaero = li + 1 if myl[:16] == "Reaction Records": if startaero is None: endgas = li endaero = li break gaskeys = tuple([_l[5:15].strip() for _l in inlines[startgas:endgas]]) if startaero is None: return dict(gas=gaskeys, aer=()) aerkeys = tuple([_l[5:15].strip() for _l in inlines[startaero:endaero]]) return dict(gas=gaskeys, aerosol=aerkeys)
[docs] def get_uamiv_units(filename, key, aerosol_names=None): if aerosol_names is None: from PseudoNetCDF.camxfiles.aerosol_names import aerosol_names if key[-3:] in ('_DV',): return 'm/s' elif key[-3:] in ('_DD', '_WD'): return _camx_units['DEPOSITION'][key[:-3] in aerosol_names] return _camx_units[filename][key in aerosol_names]