- `_read_structured_grid` builds its KDTree on raw `(lon, lat)` pairs, so nodes that are the same point on the sphere are never merged. - At the pole all `nlon+1` nodes sit at `lat=90` with distinct lons; at the seam `-180.5` and `179.5` differ by exactly 360. - Result: `n_node` is exactly `(nlon+1)*(nlat+1)`, zero merges. 899 nodes should collapse at 1 deg, 3599 at 0.25 deg. - The mesh is topologically torn: the pole node should have valence `nlon` (360 at 1 deg, 1440 at 0.25 deg) but reports 4. - Only affects the native `to_rectilinear` backend; YAC uses `reg_2d_new` with a cyclic flag and never enumerates nodes. - Fix: merge in Cartesian space inside `_read_structured_grid`. - Related to #865, which raises the same pole/antimeridian concern for duplicate nodes generally.
_read_structured_gridbuilds its KDTree on raw(lon, lat)pairs, so nodes that are the same point on the sphere are never merged.nlon+1nodes sit atlat=90with distinct lons; at the seam-180.5and179.5differ by exactly 360.n_nodeis exactly(nlon+1)*(nlat+1), zero merges. 899 nodes should collapse at 1 deg, 3599 at 0.25 deg.nlon(360 at 1 deg, 1440 at 0.25 deg) but reports 4.to_rectilinearbackend; YAC usesreg_2d_newwith a cyclic flag and never enumerates nodes._read_structured_grid.