python - Xarray - 将数据变量更改为维度

标签 python python-xarray

我正在处理大量在不同经度和纬度测量的温度数据,我可以从这样的 NetCDF 文件中打开它。

<xarray.Dataset>
Dimensions:            (altitude: 801, measurement_number: 3180)
Coordinates:
   * altitude           (altitude) float64 0.0 100.0 200.0 300.0 400.0 500.0 ...
Dimensions without coordinates: measurement_number
Data variables:
    temperature        (measurement_number, altitude) float32 ...
    longitude          (measurement_number) float64 ...
    latitude           (measurement_number) float64 ...

为了更方便地评估结果,我想将变量“经度”和“纬度”更改为这样的尺寸或坐标。

<xarray.Dataset>
Dimensions:            (altitude: 801, measurement_number: 3180, longitude: 36, latitude: 18)
Coordinates:
   * altitude           (altitude) float64 0.0 100.0 200.0 300.0 400.0 500.0 ...
   * longitude          (longitude) float64 -180, -170, -160 ...
   * latitude           (latitude) float64 -90, -80, -70, ...
Dimensions without coordinates: measurement_number
Data variables:
    temperature        (measurement_number, altitude, longitude, latitude) float32 ...

我尝试使用ds.set_coords(['longitude','latitude'])到达这里,以及许多不同的功能,但我无法根据经度和纬度来确定温度。您能给我一些如何解决这个问题的建议吗?

最佳答案

你见过Multi-index吗? xarray 中的功能?它可能不完全是您正在寻找的,并且存在一些限制(例如,据我所知,尚不支持序列化到 netCDF),但也许这对您来说没问题。这个想法是将measurement_number转换为pandas多重索引,以纬度和经度作为虚拟坐标。 然后,您也可以在多索引坐标上使用 .sel -> Multi-level indexing

关于python - Xarray - 将数据变量更改为维度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52384940/

相关文章:

python - Pandas : transform a 2D dataframe to a 3D one

python - 使用 WRF (netCDF) 数据优化阵列平面 (POA) 辐照度计算

python - 分配长度为一的新维度

python - manage.py syncdb 不为某些模型添加表

python - 使用 tweepy 在 Twitter 上获取给定用户的所有 friend

python - 使用模拟更改函数调用的第二个结果

python - 按经纬度选择数据

python - xarray 广播如何与 numpy 函数配合使用?

python - 按整数后缀对字符串列表进行排序

python - 共享Y轴标签