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 708337538,MDU6SXNzdWU3MDgzMzc1Mzg=,4456,workaround for file with variable and dimension having same name,3958036,closed,0,,,4,2020-09-24T17:10:04Z,2021-12-29T16:55:53Z,2021-12-29T16:55:53Z,CONTRIBUTOR,,,,"Adding a variable that's not a 1d ""dimension coordinate"" with the same name as a dimension is an error. This makes sense. However, if I have a `.nc` file that has such a variable, is there any workaround to get the badly-named variable into `xarray` short of altering the `.nc` file or loading it separately with `netCDF4`? I.e. to make the following work somehow ``` import xarray as xr import netCDF4 f = netCDF4.Dataset() f = netCDF4.Dataset(""test.nc"", ""w"") f.createDimension(""x"", 2) f.createDimension(""y"", 3) f[""y""] = np.ones([2,3]) f[""y""][...] = 1.0 f.close() ds = xr.open_dataset('test.nc') ``` rather than getting the current error `MissingDimensionsError: 'y' has more than 1-dimension and the same name as one of its dimensions ('x', 'y'). xarray disallows such variables because they conflict with the coordinates used to label dimensions.` I think it might be nice to have something like a `rename_vars` argument to `open_dataset()`. Similar to how `drop_vars` ignores a list of variables, `rename_vars` could rename a dict of variables so the example above could do ``` ds = xr.open_dataset(""test.nc"", rename_vars={""y"": ""y_not_dimension""}) ``` and get a Dataset with a dimension `""y""` and a variable `""y_not_dimension""`.","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/4456/reactions"", ""total_count"": 4, ""+1"": 4, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue