Source code for cedar.config.build

""" Build objects from configuration files
"""
import logging
import os
from pathlib import Path
import yaml

from .. import defaults

logger = logging.getLogger(__name__)


[docs]def build_tile_grid(grid_name=None, grid_filename=None, **kwds): """ Build the ``tile_grid`` section Parameters ---------- grid_name : str Name of the grid to use. If using a custom grid, specify the parameters for it either by passing the filename of a grid definition file, or by passing all the necessary keywords to create a :py:class:`stems.gis.grids.TileGrid`. grid_filename : str or pathlib.Path, optional Custom tile grid definition file. Should be loadable using :py:func:`stems.gis.grids.load_grids`. kwds Otherwise, pass keywords to initialize a TileGrid Returns ------- dict The ``tile_grid`` parameter section See Also -------- stems.gis.grids.TileGrid """ from stems.gis.grids import TileGrid, load_grids # Check if user wants a "named" or "defined" grid if grid_name: # Check for definitions file grids = load_grids(filename=filename) try: tile_grid = grids[grid_name] except KeyError: known = ', '.join([f'"{k}"' for k in grids]) raise KeyError(f'Could not load a grid named "{grid_name}". ' f'Available grids: {known}') else: # Should have all the parameters to init otherwise tile_grid = TileGrid(**kwds) return tile_grid
[docs]def build_tracker(tile_grid, store, **kwds): """ Build the ``gee`` section and return a Tracker """ from ..tracker import Tracker tracker = Tracker(tile_grid, store, **kwds) return tracker