Two Datasets are broadcast equal if they are equal after broadcasting all variables against each other.

For example, variables that are scalar in one dataset but non-scalar in the other dataset can still be broadcast equal if the the non-scalar variable is a constant.

Examples

# 2D array with shape (1, 3)

```>>> data = np.array([[1, 2, 3]])
>>> a = xr.Dataset(
...     {"variable_name": (("space", "time"), data)},
...     coords={"space": [0], "time": [0, 1, 2]},
... )
>>> a
<xarray.Dataset>
Dimensions:        (space: 1, time: 3)
Coordinates:
* space          (space) int64 0
* time           (time) int64 0 1 2
Data variables:
variable_name  (space, time) int64 1 2 3
```

# 2D array with shape (3, 1)

```>>> data = np.array([[1], [2], [3]])
>>> b = xr.Dataset(
...     {"variable_name": (("time", "space"), data)},
...     coords={"time": [0, 1, 2], "space": [0]},
... )
>>> b
<xarray.Dataset>
Dimensions:        (time: 3, space: 1)
Coordinates:
* time           (time) int64 0 1 2
* space          (space) int64 0
Data variables:
variable_name  (time, space) int64 1 2 3
```

.equals returns True if two Datasets have the same values, dimensions, and coordinates. .broadcast_equals returns True if the results of broadcasting two Datasets against each other have the same values, dimensions, and coordinates.

```>>> a.equals(b)
False
```
```>>> a.broadcast_equals(b)
True
```
```>>> a2, b2 = xr.broadcast(a, b)
>>> a2.equals(b2)
True
```

`Dataset.equals`, `Dataset.identical`, `Dataset.broadcast`