html_url,issue_url,id,node_id,user,created_at,updated_at,author_association,body,reactions,performed_via_github_app,issue
https://github.com/pydata/xarray/issues/5901#issuecomment-953852124,https://api.github.com/repos/pydata/xarray/issues/5901,953852124,IC_kwDOAMm_X8442qDc,30388627,2021-10-28T13:35:59Z,2021-10-28T13:51:24Z,NONE,"@jklymak Thanks for the explanation.
> To get the old behaviour you simply need to do pcolormesh(x, y, Z[:-1, :-1], shading='flat') or make x and y one larger than Z in each dimension and specify the the corners of the quadrilaterals.
### Method1: Subset value
This method works for the xarray tutorial data, but not for the TROPOMI polar-orbiting satellite data.
```
%matplotlib inline
import xarray as xr
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
plt.figure(figsize=(14,6))
ax = plt.axes(projection=ccrs.PlateCarree())
ds = xr.open_dataset('./S5P_OFFL_L2__NO2____20190810T212136_20190810T230306_09456_01_010302_20190816T233944.nc', group='PRODUCT').isel(time=0)
m = ax.pcolormesh(ds['longitude'],
ds['latitude'],
ds['nitrogendioxide_tropospheric_column'][:-1, :-1],
# ds['nitrogendioxide_tropospheric_column'],
# shading='auto',
transform=ccrs.PlateCarree(),
vmin=0, vmax=1e-4, cmap='Spectral_r')
```

(The TROPOMI example data is uploaded to [Google Drive](https://drive.google.com/drive/folders/1Op3SxIQ_wHNX2GgLGzXqkJhZS64oGdST?usp=sharing))
### Method2: bounds
This issue still exists with bounds data:
```
%matplotlib inline
import numpy as np
import xarray as xr
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
def prepare_geo(bounds_data):
""""""Prepare lat/lon bounds for pcolormesh.
lat/lon bounds are ordered in the following way::
3----2
| |
0----1
Extend longitudes and latitudes with one element to support
""pcolormesh""::
(X[i+1, j], Y[i+1, j]) (X[i+1, j+1], Y[i+1, j+1])
+--------+
| C[i,j] |
+--------+
(X[i, j], Y[i, j]) (X[i, j+1], Y[i, j+1])
""""""
# Create the left array
left = np.vstack([bounds_data[:, :, 0], bounds_data[-1:, :, 3]])
# Create the right array
right = np.vstack([bounds_data[:, -1:, 1], bounds_data[-1:, -1:, 2]])
# Stack horizontally
dest = np.hstack([left, right])
# Convert to DataArray
dest = xr.DataArray(dest,
dims=('y_bounds', 'x_bounds'),
attrs=bounds_data.attrs
)
return dest
ds = xr.open_dataset('./S5P_OFFL_L2__NO2____20190810T212136_20190810T230306_09456_01_010302_20190816T233944.nc', group='PRODUCT').isel(time=0)
ds_geo = xr.open_dataset('./S5P_OFFL_L2__NO2____20190810T212136_20190810T230306_09456_01_010302_20190816T233944.nc', group='/PRODUCT/SUPPORT_DATA/GEOLOCATIONS').isel(time=0)
lon_bounds = prepare_geo(ds_geo['longitude_bounds'])
lat_bounds = prepare_geo(ds_geo['latitude_bounds'])
plt.figure(figsize=(14,6))
ax = plt.axes(projection=ccrs.PlateCarree())
m = ax.pcolormesh(lon_bounds,
lat_bounds,
ds['nitrogendioxide_tropospheric_column'],
# shading='auto',
transform=ccrs.PlateCarree(),
vmin=0, vmax=1e-4, cmap='Spectral_r')
```

","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,1037814301
https://github.com/pydata/xarray/issues/5901#issuecomment-953350140,https://api.github.com/repos/pydata/xarray/issues/5901,953350140,IC_kwDOAMm_X8440vf8,30388627,2021-10-27T22:13:44Z,2021-10-27T22:13:44Z,NONE,"@QuLogic Ha, it looks well with the latest cartopy (0.20.1). Thanks a lot.

@TomNicholas So, is it better to keep this open until the doc is updated?","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,1037814301
https://github.com/pydata/xarray/issues/5901#issuecomment-953298464,https://api.github.com/repos/pydata/xarray/issues/5901,953298464,IC_kwDOAMm_X8440i4g,30388627,2021-10-27T20:47:18Z,2021-10-27T21:00:46Z,NONE,"@TomNicholas I checked the doc and this issue begins from [v0.16.1](http://xarray.pydata.org/en/v0.16.1/examples/multidimensional-coords.html). Note that there're also small spurious lines after [v0.10.9](http://xarray.pydata.org/en/v0.10.9/examples/multidimensional-coords.html). Before v0.10.9, the figure looks fine. It's may be also related to matplotlib ... CC @jklymak and @timhoffm.","{""total_count"": 1, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 1, ""rocket"": 0, ""eyes"": 0}",,1037814301
https://github.com/pydata/xarray/issues/5901#issuecomment-953295655,https://api.github.com/repos/pydata/xarray/issues/5901,953295655,IC_kwDOAMm_X8440iMn,30388627,2021-10-27T20:42:58Z,2021-10-27T20:42:58Z,NONE,"BTW, the question on [StackOverflow](https://stackoverflow.com/questions/46527456/preventing-spurious-horizontal-lines-for-ungridded-pcolormesh-data), which was raised by @gerritholl a long time ago, looks similar. I'm not sure whether this is the cartopy issue, CC @QuLogic, and @greglucas.","{""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,1037814301