------------------
Added
~~~~~
- :meth:`xugrid.Ugrid2d.to_nonperiodic`,
:meth:`xugrid.UgridDataArrayAccessor.to_nonperiodic` and
:meth:`xugrid.UgridDatasetAccessor.to_nonperiodic` have been added to convert
a "periodid grid" (where the leftmost nodes are the same as the rightmost
nodes, e.g. a mesh for the globe) to an "ordinary" grid.
- Conversely, :meth:`xugrid.Ugrid2d.to_periodic`,
:meth:`xugrid.UgridDataArrayAccessor.to_periodic` and
:meth:`xugrid.UgridDatasetAccessor.to_periodic` have been added to convert an
ordinary grid to a periodic grid.
- :attr:`xugrid.Ugrid2d.perimeter` has been added the compute the length of the
face perimeters.
- :meth:`xugrid.Ugrid1d.reindex_like`,
:meth:`xugrid.Ugrid2d.reindex_like`,
:meth:`xugrid.UgridDataArrayAccessor.reindex_like` and
:meth:`xugrid.UgridDatasetAccessor.reindex_like` have been added to deal with
equivalent but differently ordered topologies and data.
Changed
~~~~~~~
- UGRID 2D topologies are no longer automatically forced in counterclockwise
orientation during initialization.
Fixed
~~~~~
- Using an index which only reorders but does not change the size in
:meth:`xugrid.Ugrid1d.topology_subset` or
:meth:`xugrid.Ugrid2d.topology_subset` would erroneously result in the
original grid being returned, rather than a new grid with the faces or edges
shuffled. This breaks the link the between topology and data when using
``.isel`` on a UgridDataset or UgridDataArray. This has been fixed: both data
and the topology are now shuffled accordingly.