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/2292#issuecomment-722565840,https://api.github.com/repos/pydata/xarray/issues/2292,722565840,MDEyOklzc3VlQ29tbWVudDcyMjU2NTg0MA==,22542812,2020-11-05T18:41:24Z,2020-11-05T18:41:24Z,NONE,"I just came along this question as I tried something similar to @joshburkart. Using a string-enum instead, the code works in principle: ```python import enum import numpy as np import pandas as pd import xarray as xr class CoordId(str, enum.Enum): LAT = 'lat' LON = 'lon' pd.DataFrame({CoordId.LAT: [1,2,3]}).to_csv() # Returns: ',CoordId.LAT\n0,1\n1,2\n2,3\n' xr.DataArray( data=np.arange(3 * 2).reshape(3, 2), coords={CoordId.LAT: [1, 2, 3], CoordId.LON: [7, 8]}, dims=[CoordId.LAT, CoordId.LON], ) # output # # array([[0, 1], # [2, 3], # [4, 5]]) # Coordinates: # * lat (CoordId.LAT) int64 1 2 3 # * lon (CoordId.LON) int64 7 8 ``` We however got somewhat ambivalent results, that the dimensions are still enum elements `dims = (, )`, but the coordinate names are the strings. After writing and reading the `DataArray`, everything is a plain string, we can still access the elements using the enum elements, as they are equal to the strings.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,341643235