Source code for PseudoNetCDF.camxfiles.cloud_rain.Transforms

__all__ = ['cloud_rain_center_time',
           'cloud_rain_plus', 'cloud_rain_center_time_plus']
__doc__ = """
.. _Write
:mod:`Write` -- CAMx cloud/rain variable transformations
==================================================

.. module:: Write
   :platform: Unix, Windows
   :synopsis: Provides :ref:`PseudoNetCDF` variable transformations
              for CAMx cloud/rain files. See sci_var.PseudoNetCDFFile
              for interface details
.. moduleauthor:: Barron Henderson <barronh@unc.edu>
"""


from numpy import array

from PseudoNetCDF.MetaNetCDF import add_derived, time_avg_new_unit
from PseudoNetCDF.sci_var import PseudoNetCDFVariable
from .Memmap import cloud_rain as reg_cloud_rain


[docs] class cloud_rain_center_time(time_avg_new_unit): __reader__ = reg_cloud_rain
[docs] class cloud_rain_plus(add_derived): __childclass__ = reg_cloud_rain __addvars__ = ['PRECIP_RATE', 'FCLOUD'] def __PRECIP_RATE__(self): if 'PRECIP' in self.variables.keys(): val = self.variables['PRECIP'] else: val = self.variables['RAIN'] + \ self.variables['SNOW'] + self.variables['GRAUPEL'] var = PseudoNetCDFVariable( self, 'PRECIP_RATE', 'f', ('TSTEP', 'LAY', 'ROW', 'COL'), values=(val * 10)**1.27) var.units = 'mm/h' var.long_name = 'PRECIP_RATE'.ljust(16) var.var_desc = 'PRECIP_RATE'.ljust(16) return var def __FCLOUD__(self): val = self.variables['CLOUD'] >= 5 var = PseudoNetCDFVariable( self, 'FCLOUD', 'i', ('TSTEP', 'LAY', 'ROW', 'COL'), values=array(val, dtype='i')) var.units = 'None' var.long_name = 'FCLOUD'.ljust(16) var.var_desc = 'FCLOUD'.ljust(16) return var
[docs] class cloud_rain_center_time_plus(cloud_rain_plus): __childclass__ = cloud_rain_center_time