向cds工具箱中的数据对象添加新变量

2024-09-24 00:32:34 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我能够做到这一点,但目前无法创建一个可以作为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)

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


Tags: 数据对象代码datanetcdfarearetrievestd
1条回答
网友
1楼 · 发布于 2024-09-24 00:32:34

事实证明,您可以从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

相关问题 更多 >