Skip to content

The Dataset.rename_dims creates a new dimension without coordinates #6867

Closed
@ZhaJiMan

Description

@ZhaJiMan

What is your issue?

The documentation says Dataset.rename_dims will returns a new object with renamed dimensions only. In my work I am intended to rename the longitude and latitude dimensions: ds = ds.rename_dims(longitude='lon', latitude='lat'). But it turned out that a new dimension lon was created with values from 0 to its length minus 1. Is this result the expected behaviour of rename_dims, or I misused this method?

A simple case below:

import numpy as np
import xarray as xr

da = xr.DataArray([1, 2, 3], coords=[('space', list('abc'))])
ds = xr.Dataset({'x': da})

The information of ds in repl is

<xarray.Dataset>
Dimensions:  (space: 3)
Coordinates:
  * space    (space) <U1 'a' 'b' 'c'
Data variables:
    x        (space) int32 1 2 3

But after ds = ds.rename_dims(space='label')

<xarray.Dataset>
Dimensions:  (label: 3)
Coordinates:
    space    (label) <U1 'a' 'b' 'c'
Dimensions without coordinates: label
Data variables:
    x        (label) int32 1 2 3

space became a non-coordinate dimension, and label was created as a new dimension without coordinates.

Environment:
numpy : 1.22.3
pandas : 1.4.2
xarray : 2022.3.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions