am.grid

Classes

ModelGrid

Run an am model over a grid of parameter values.

Module Contents

class am.grid.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()).

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.