diff --git a/xarray/core/concat.py b/xarray/core/concat.py index 5ef3c01d427..8cd75502fa3 100644 --- a/xarray/core/concat.py +++ b/xarray/core/concat.py @@ -658,6 +658,11 @@ def get_indexes(name): for name, result_var in result_vars.items() if name in coord_names } + result_data_vars = { + name: result_var + for name, result_var in result_vars.items() + if name not in coord_names + } if index is not None: if dim_var is not None: @@ -668,16 +673,14 @@ def get_indexes(name): coord_vars[dim] = index_vars[dim] result_indexes[dim] = index unlabeled_dims = unlabeled_dims - set([dim]) + else: + if dim in result_data_vars: + coord_vars[dim] = result_data_vars[dim] + result_data_vars.pop(dim) # TODO: add indexes at Dataset creation (when it is supported) coords = Coordinates(coord_vars, indexes=result_indexes) - result_data_vars = { - name: result_var - for name, result_var in result_vars.items() - if name not in coord_names - } - result = type(datasets[0])(result_data_vars, coords=coords, attrs=result_attrs) result.encoding = result_encoding