-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Working with Multidimensional Coordinates - Plotting PlateCarree projection looks strange #4596
Comments
Yes, this is due to an upstream change in matplotlib - see also #4364. mpl tries to infer the edges of the gridcell - which does not work if the data is not monotonic. In the short term we can fix this by passing ds.Tair[0].plot.pcolormesh(ax=ax, transform=ccrs.PlateCarree(), x='xc', y='yc', add_colorbar=False) however, mpl will eventually remove |
I believe the best (albeit tedious) solution is to resample the coordinates from nx*ny to (nx+1)*(ny+1) before passing the grid to pcolormesh. They should be resampled in such way that the new coordinate positions are on the corner of the quadrilateral as is expected by pcolormesh with flat shading. If only needs to be ensured that none of the 'new' quadliterals crosses the map boundary. The problem with dropping the last row and column is that it will effectively lead to the position of the values on the map being shifted from their actual position, because pcolormesh assumes that position of value and coordinate different. (May be a minor shift in many cases but still.) I could not find anything about mpl removing flat shading, are you sure about that? |
It's in the deprecation warning:
We are currently doing this (if the coordinates are monotonic). And mpl also started doing it (and now gives a warning on non-monotonic coordinates). The problem is that with non-monotonic coordinates it leads to wrong results.
I think that's not trivial - see also: SciTools/cartopy#1638 and matplotlib/matplotlib#18317 and has to be fixed upstream. There is a proposed fix, see: SciTools/cartopy#1646. |
OK I see, thanks for the links. But if the grid is resampled before passing to mpl, flat shading could still be used in the future and non-monotonic coordinates for plotting wouldn't be an issue- well except for the resampling itself.. but they have a good idea for solving that in that cartopy fix. If I understand correctly, their fix 1646 might solve this issue here as well then? |
I think can be closed as fixed upstream |
The pixels seem stretched; https://xarray.pydata.org/en/stable/examples/multidimensional-coords.html
The text was updated successfully, but these errors were encountered: