Source code for vic.output

""" Module containing output templates for VIC.

.. module:: vic_output
   :synopsis: Definition of the VIC output module

.. moduleauthor:: Kostas Andreadis <kandread@jpl.nasa.gov>

"""

ebTemplate = """OUTFILE         eb      12
OUTVAR          OUT_NET_SHORT           %.4f    *       *
OUTVAR          OUT_NET_LONG            %.4f    *       *
OUTVAR          OUT_SHORTWAVE           %.4f    *       *
OUTVAR          OUT_LONGWAVE            %.4f    *       *
OUTVAR          OUT_LATENT              %.4f    *       *
OUTVAR          OUT_SENSIBLE            %.4f    *       *
OUTVAR          OUT_GRND_FLUX           %.4f    *       *
OUTVAR          OUT_MELT_ENERGY         %.4f    *       *
OUTVAR          OUT_RFRZ_ENERGY         %.4f    *       *
OUTVAR          OUT_ADVECTION           %.4f    *       *
OUTVAR          OUT_DELTAH              %.4f    *       *
OUTVAR          OUT_DELTACC             %.4f    *       *
"""

wbTemplate = """OUTFILE         wb      8
OUTVAR          OUT_SNOWF               %.6f    *       *
OUTVAR          OUT_RAINF               %.6f    *       *
OUTVAR          OUT_EVAP                %.6f    *       *
OUTVAR          OUT_RUNOFF              %.6f    *       *
OUTVAR          OUT_BASEFLOW            %.6f    *       *
OUTVAR          OUT_SNOW_MELT           %.6f    *       *
OUTVAR          OUT_REFREEZE            %.4f    *       *
OUTVAR          OUT_PREC                %.6f    *       *
"""

surTemplate = """OUTFILE         sur     10
OUTVAR          OUT_SNOW_SURF_TEMP      %.4f    *       *
OUTVAR          OUT_VEGT                %.4f    *       *
OUTVAR          OUT_BARESOILT           %.4f    *       *
OUTVAR          OUT_SURF_TEMP           %.4f    *       *
OUTVAR          OUT_AIR_TEMP            %.4f    *       *
OUTVAR          OUT_ALBEDO              %.4f    *       *
OUTVAR          OUT_SWE                 %.4f    *       *
OUTVAR          OUT_SNOW_CANOPY         %.4f    *       *
OUTVAR          OUT_SURFSTOR            %.4f    *       *
OUTVAR          OUT_WDEW                %.6f    *       *
"""

subTemplate = """OUTFILE         sub     6
OUTVAR          OUT_ROOTMOIST   %.4f    *       *
OUTVAR          OUT_SOIL_MOIST  %.4f    *       *
OUTVAR          OUT_SOIL_TEMP   %.4f    *       *
OUTVAR          OUT_SMLIQFRAC   %.4f    *       *
OUTVAR          OUT_SMFROZFRAC  %.4f    *       *
OUTVAR          OUT_SOIL_WET    %.4f    *       *
"""

evaTemplate = """OUTFILE         eva     8
OUTVAR          OUT_EVAP_CANOP  %.6f    *       *
OUTVAR          OUT_TRANSP_VEG  %.6f    *       *
OUTVAR          OUT_EVAP_BARE   %.6f    *       *
OUTVAR          OUT_LAKE_EVAP   %.6f    *       *
OUTVAR          OUT_WDEW        %.4f    *       *
OUTVAR          OUT_SUB_SNOW    %.6f    *       *
OUTVAR          OUT_SUB_CANOP   %.6f    *       *
OUTVAR          OUT_AERO_COND   %.4f    *       *
"""

cspTemplate = """OUTFILE         csp     5
OUTVAR          OUT_SNOW_COVER  %.4f    *       *
OUTVAR          OUT_FDEPTH      %.4f    *       *
OUTVAR          OUT_TDEPTH      %.4f    *       *
OUTVAR          OUT_SALBEDO     %.4f    *       *
OUTVAR          OUT_SNOW_DEPTH  %.4f    *       *
"""


[docs]def template(varlist): """Returns string of VIC output template.""" out = "N_OUTFILES\t{0}\n".format(len(varlist)) out += "\n" if "eb" in varlist: out += ebTemplate if "csp" in varlist: out += cspTemplate if "wb" in varlist: out += wbTemplate if "sur" in varlist: out += surTemplate if "sub" in varlist: out += subTemplate if "eva" in varlist: out += evaTemplate return out
[docs]def variableGroup(args): """Returns new list of variables by expanding variable that corresponds to group name.""" groupvars = {'snow': ["swe", "salbedo", "snow_cover", "snow_depth"], 'drought': ["severity", "spi1", "spi3", "spi6", "spi12", "sri1", "sri3", "sri6", "sri12", "smdi", "dryspells"], 'soil': ["soil_moist", "soil_temp"], 'eb': ["net_short", "net_long", "latent", "sensible", "grnd_flux"], 'wb': ["rainf", "snowf", "evap", "runoff", "baseflow"]} for v in args: if v in groupvars: args.remove(v) for gv in groupvars[v]: if gv not in args: args.append(gv) return args