Source code for vortex_cen.data.postprocess

# -*- coding: utf-8 -*-
"""
postprocess.py
--------------

SURFEX/Crocus post-processing resources.

.. inheritance-diagram:: vortex_cen.data.postprocess
   :top-classes: vortex_cen.data.flow.SurfaceIO, vortex_cen.data.flow.SurfaceIOVortex1
   :private-bases:
   :parts: 2

.. autoclass:: Postproc
   :show-inheritance:

.. autoclass:: ScoresSnow
   :show-inheritance:

.. autoclass:: PostprocVortex1
   :show-inheritance:

.. autoclass:: ScoresSnowVortex1
   :show-inheritance:

"""

from vortex_cen.data.flow import SurfaceIO, SurfaceIOVortex1


[docs] class Postproc(SurfaceIO): """Class for post-processed SURFEX/Crocus output files.""" # TODO : Il n'y a pas vraiment d'intéret à avoir une classe distincte de "SurfaceIO" ou "Pro" en l'état # La logique voudrait que : # kind = 'postproc' # model = 'surfex' # Pourquoi ne pas hériter de "SurfexPeriodDiagnostics" / "SurfexDiagnostics" (common/data/diagnostics.py) # --> cela permettrait d'ajouter le type de diagnostique / post-process ("scope") _footprint = [ dict( info = 'Post-processed Surfex-simulated snowpack files', attr = dict( kind = dict( values = ['SnowpackSimulation'], # values = ['SnowpackSimulation', 'ProPostProcess'], ? ), model = dict( values = ['postproc'], ), ) ) ] @property def realkind(self): return "POSTPROC"
[docs] class ScoresSnow(SurfaceIO): """Class for scores of snow simulations.""" _footprint = [ dict( info = 'Safran-produced forcing file', attr = dict( kind = dict( values = ['ScoresSnow'], ), model = dict( values = ['surfex'], ), ) ) ] @property def realkind(self): return "scores"
[docs] class PostprocVortex1(SurfaceIOVortex1): """Class for post-processed SURFEX/Crocus output files.""" # TODO : Il n'y a pas vraiment d'intéret à avoir une classe distincte de "SurfaceIO" ou "Pro" en l'état # La logique voudrait que : # kind = 'postproc' # model = 'surfex' # Pourquoi ne pas hériter de "SurfexPeriodDiagnostics" / "SurfexDiagnostics" (common/data/diagnostics.py) # --> cela permettrait d'ajouter le type de diagnostique / post-process ("scope") _footprint = [ dict( info = 'Post-processed Surfex-simulated snowpack files', attr = dict( kind = dict( values = ['SnowpackSimulation'], # values = ['SnowpackSimulation', 'ProPostProcess'], ? ), model = dict( values = ['postproc'], ), ) ) ] @property def realkind(self): return "POSTPROC"
[docs] class ScoresSnowVortex1(SurfaceIOVortex1): """Class for scores of snow simulations.""" _footprint = [ dict( info = 'Safran-produced forcing file', attr = dict( kind = dict( values = ['ScoresSnow'], ), model = dict( values = ['surfex'], ), ) ) ] @property def realkind(self): return "scores"