am.grid ======= .. py:module:: am.grid Classes ------- .. autoapisummary:: am.grid.ModelGrid Module Contents --------------- .. py:class:: ModelGrid(path: pathlib.Path, params: xarray.Dataset, args_fn: Callable[Ellipsis, list[str]], max_workers: int | None = None) Run an am model over a grid of parameter values. Parameters ---------- path: Path to the ``.amc`` template file. params: xarray Dataset defining the parameter space. Two forms are supported: * **Regular (Cartesian) grid** — coordinates on independent dimensions:: xr.Dataset(coords={"elevation": [30, 45, 60], "pwv": [0.5, 1.0, 2.0]}) * **Irregular grid** — variables sharing one dimension:: xr.Dataset({"elevation": ("profile", elev), "pwv": ("profile", pwv)}) args_fn: Callable that maps parameter values to an am args list. Keyword argument names must match coordinate/variable names in *params*:: args_fn=lambda elevation, pwv: [ "0", "GHz", "350", "GHz", "0.5", "GHz", str(elevation), "deg", str(pwv), ] max_workers: Number of worker processes (default: ``os.cpu_count()``). .. py:method:: compute() -> xarray.Dataset Run all models and return an xarray Dataset. The output Dataset has the same dimensions and coordinates as *params*, plus a ``frequency`` dimension. Each requested am output (e.g. ``tb_rj``, ``transmittance``) becomes a data variable.