【问题标题】:Add new variable to data object in cds toolbox将新变量添加到 cds 工具箱中的数据对象
【发布时间】:2021-03-12 11:01:17
【问题描述】:

我想计算一个变量的每日气候学和标准偏差(在本例中为两个级别的压力)。

我能够做到这一点,但目前无法创建可以下载为 netcdf 的单个数据对象。

我的代码当前输出一个数据对象 area_ave_c 是气候学,area_ave_s 是标准偏差。

我可以让函数返回其中一个对象,但理想情况下我想合并它们并返回一个包含两个变量的数据对象(作为 netcdf 下载)。

import cdstoolbox as ct


@ct.application(title='Retrieve Data')
@ct.output.download()



def retrieve_sample_data():
    data = ct.catalogue.retrieve(
        'reanalysis-era5-pressure-levels',
        {
            'product_type': 'reanalysis',
            'pressure_level': [
                '1','2',
            ],
            'year': [            '1979', '1980', '1981'
                    ],
            
            'month': [
                '01','02','12',
            ],
            'day': [
            '01', '02', '03',
            '04', '05', '06',
            ],
            'time': [
                '00:00',
            ],
            "grid": [1, 1],
            "area":[90,-180,60,180],
        }
    )
    
    climatology = ct.climate.climatology_mean(data,frequency='dayofyear')
    std_deviation = ct.climate.climatology_std(data,frequency='dayofyear')

    area_ave_c = ct.geo.spatial_average(climatology)
    area_ave_s = ct.geo.spatial_average(std_deviation)

    return (area_ave_s, area_ave_c)

返回行当前抛出一个错误,但我想下载两个数据对象并运行代码两次以顺序输出它们是浪费的(因为它两次获取所有数据)。

【问题讨论】:

    标签: python cdo-climate era5


    【解决方案1】:

    事实证明,您可以从retrieve_sample_data() 函数返回两个对象,然后只需在函数之前的序言中调用ct.output.download() 两次即可下载它们。所以我的代码现在是:

    import cdstoolbox as ct
    
    @ct.application(title='Retrieve Data')
    
    @ct.output.download()
    @ct.output.download()
    
    def retrieve_sample_data():
    etc etc
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多