def coord_compat()

in bayesmark/xr_util.py [0:0]


def coord_compat(da_seq, dims):
    """Check if a sequence of :class:`xarray:xarray.DataArray` have compatible coordinates.

    Parameters
    ----------
    da_seq : list(:class:`xarray:xarray.DataArray`)
        Sequence of :class:`xarray:xarray.DataArray` we would like to check for compatibility.
        :class:`xarray:xarray.Dataset` work too.
    dims : list
        Subset of all dimensions in the :class:`xarray:xarray.DataArray` we are concerned with for compatibility.

    Returns
    -------
    compat : bool
        True if all the :class:`xarray:xarray.DataArray` have compatible coordinates.
    """
    if len(da_seq) <= 1:
        return True

    ref = da_seq[0]
    for da in da_seq:
        # There is probably a better way to do this by attempting concat in try-except, but good enough for now:
        for dd in dims:
            assert dd in da.coords, "dim %s missing in dataarray" % dd
            if not np.all(ref.coords[dd].values == da.coords[dd].values):
                return False
    return True