0

我已经在带有 iris 的混合 p 网格上加载了一些数据,如下所示:

specific_humidity / (1)             (atmosphere_hybrid_sigma_pressure_coordinate: 48; latitude: 160; longitude: 320)
     Dimension coordinates:
          atmosphere_hybrid_sigma_pressure_coordinate                           x             -               -
          latitude                                                              -             x               -
          longitude                                                             -             -               x
     Auxiliary coordinates:
          vertical coordinate formula term: a(k)                                x             -               -
          vertical coordinate formula term: b(k)                                x             -               -
          vertical pressure                                                     x             -               -
          surface_air_pressure                                                  -             x               x
     Derived coordinates:
          air_pressure                                                          x             x               x
     Scalar coordinates:
          time: 2005-11-01 00:00:00
          vertical coordinate formula term: reference pressure: 101325.0 Pa
     Attributes:
          Conventions: CF-1.4

我想要的是把压力坐标变成一个立方体用于计算。我可以使用以下代码执行此操作:

p_cube=humid.copy(humid.coord('air_pressure').points)
p_cube.rename('air_pressure')
p_cube.units=humd_1t.coord('air_pressure').units

但是有没有更简洁的方法?

4

1 回答 1

0

好问题,我认为对于您已经提供的问题没有更好的解决方案。

从设计的角度来看,Iris 的坐标并不完全是立方体(包括它们自己的坐标、单元测量和方法等)。似乎为了正确地做这样的事情,Iris 需要获得数据集的概念(其中多个现象共享一组坐标)。

唯一稍微整洁的方法(未经测试)可能是:

p_cube=humid.copy(humid.coord('air_pressure').points)
p_cube.metadata = humid.coord('air_pressure').metadata

虽然我不是 100% 确定在定义多维数据集的元数据时提供 CoordMetadata 对象是否有效。

高温高压

于 2018-12-12T16:39:35.020 回答