id,node_id,number,title,user,state,locked,assignee,milestone,comments,created_at,updated_at,closed_at,author_association,active_lock_reason,draft,pull_request,body,reactions,performed_via_github_app,state_reason,repo,type
424265093,MDExOlB1bGxSZXF1ZXN0MjYzNjU2Nzcz,2844,Read grid mapping and bounds as coords,22566757,closed,0,,,38,2019-03-22T15:25:37Z,2021-02-17T16:35:56Z,2021-02-17T16:35:56Z,CONTRIBUTOR,,0,pydata/xarray/pulls/2844,"<!-- Feel free to remove check-list items aren't relevant to your change -->
I prefer having these as coordinates rather than data variables.

This does not cooperate with slicing/pulling out individual variables.
`grid_mapping` should only be associated with variables that have
horizontal dimensions or coordinates.
`bounds` should stay associated despite having more dimensions.

I have not implemented similar functionality for the iris conversions.

An alternate approach to dealing with bounds (not used here) is to use a
`pandas.IntervalIndex`
http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.IntervalIndex.html#pandas.IntervalIndex
and use where the coordinate is within its cell to determine on which
side the intervals are closed (`x_dim == x_dim_bnds[:, 0]` corresponds
to ""left"", `x_dim == x_dim_bnds[:, 1]` corresponds to ""right"", and
anything else is ""neither"").  This would stay through slicing and
might already be used for `.groupby_bins()`, but would not generalize
to boundaries of multidimensional coordinates unless someone
implements a multidimensional generalization of `pd.IntervalIndex`

 - [ ] Closes #xxxx
 - [X] Tests added
 - [ ] Fully documented, including `whats-new.rst` for all changes and `api.rst` for new API
","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/2844/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull
424262546,MDExOlB1bGxSZXF1ZXN0MjYzNjU0NzQ0,2843,Allow passing _FillValue=False in encoding for vlen str variables.,22566757,closed,0,,,2,2019-03-22T15:20:27Z,2019-03-30T14:04:30Z,2019-03-30T14:04:13Z,CONTRIBUTOR,,0,pydata/xarray/pulls/2843,"<!-- Feel free to remove check-list items aren't relevant to your change -->
The documentation seems to imply that passing _FillValue=False in the encoding works to set no fill value for any value.  These changes to `netCDF4_.py` and `h5netcdf_.py` seem to allow this for variables that are vlen strings (dtype `str` rather than `""S1""`): I have used the code-path in `netCDF4_.py` in real code and know that it at least allows the save to complete.

Allowing _FillValue=False makes it easier to explicitly exclude `_FillValue` from being written for coordinate variables, which some CF-compliance checkers complain about.

 - [ ] Closes #xxxx
 - [X] Tests added
 - [ ] Fully documented, including `whats-new.rst` for all changes and `api.rst` for new API
","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/2843/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull