Source code for epygram.geometries

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Copyright (c) Météo France (2014-)
# This software is governed by the CeCILL-C license under French law.
# http://www.cecill.info
"""
Contains all geometries classes.
"""

from __future__ import print_function, absolute_import, unicode_literals, division

from footprints import proxy as fpx

from .H2DGeometry import H2DGeometry
from .D3Geometry import D3Geometry, D3AcademicGeometry, _need_pyproj_geod
from .VGeometry import VGeometry
from .V1DGeometry import V1DGeometry
from .V2DGeometry import V2DGeometry
from .H1DGeometry import H1DGeometry
from .PointGeometry import PointGeometry
from .SpectralGeometry import SpectralGeometry, truncation_from_gridpoint_dims
from . import domain_making

Pressure = 100
Altitude = 102
Height = 103
PV = 109
HybridH = 118
HybridP = 119

#: Mapping of vertical coordinates
vertical_coordinates = {'Pressure':Pressure,
                        'Altitude':Altitude,
                        'Height':Height,
                        'PV':PV,
                        'HybridH':HybridH,
                        'HybridP':HybridP}


[docs]def build_surf_VGeometry(): """Build a surface vertical geometry.""" return fpx.geometry(levels=[0], structure='V', typeoffirstfixedsurface=1)
[docs]def build_geometry(help_on=None, **kwargs): """ Proxy to build geometry from scratch. All arguments are to be given to build geometry. :param help_on: name of the attribute to have some help on. """ g = fpx.geometry(**kwargs) if g is None and help_on is not None: print('H' * 80) print('Help_on:', help_on) attr_map = fpx.geometrys.build_attrmap()[help_on] attr_map = {am['name']:am['values'] for am in attr_map} for c in sorted(attr_map.keys()): print('* Class', c, ':', attr_map[c]) return g